【发布时间】:2019-09-18 01:21:17
【问题描述】:
我目前正在重复很多代码,因为我需要 summarize 始终为不同的组提供相同的列。如何通过只编写一次 summarize 函数(始终相同)来有效地做到这一点,但逐个定义输出名称和 group_by 参数?
一个最小的例子:
col1 <- c("UK", "US", "UK", "US")
col2 <- c("Tech", "Social", "Social", "Tech")
col3 <- c("0-5years", "6-10years", "0-5years", "0-5years")
col4 <- 1:4
col5 <- 5:8
df <- data.frame(col1, col2, col3, col4, col5)
result1 <- df %>%
group_by(col1, col2) %>%
summarize(sum1 = sum(col4, col5))
result2 <- df %>%
group_by(col2, col3) %>%
summarize(sum1 = sum(col4, col5))
result3 <- df %>%
group_by(col1, col3) %>%
summarize(sum1 = sum(col4, col5))
【问题讨论】:
-
ddply函数比group_by %>% summarise更简洁。您可以将第一个重写为ddply(df, .(col1, col2), summarise, sum1=sum(col5, col5))。不回答您的实际问题,但会减少您使用的行数
标签: r function tidyverse summarize