【发布时间】:2018-12-11 23:20:37
【问题描述】:
我想知道每个国家,小学、初中和高中的最长总和(因为每年的持续时间可能不一样)。我首先 group_by 国家,并使用 colSum,但我得到的值是所有的 max(colSum),这意味着 group_bu 在这里根本不起作用。
我做了一些研究,我已经分离了“plyr”。其实,如果我尝试
df1 <- mtcars %>%
group_by(cyl, gear) %>%
summarise(
newvar = sum(wt)
)
效果很好。但是在这里我不是在一个列上发生变异,而是在许多列上发生变异,你知道我应该怎么做才能解决这个问题吗?
非常感谢。
data1 = data.frame(country = c("A",'A',"A",'A',"B","B","B","B"),
item = c("Age for primary school","Duration for primary school", "Duration for middle school", "duration for high school",
"Age for primary school","Duration for primary school", "Duration for middle school", "duration for high school"),
'2008' = c(6, 6, 4, 3,7,5,4,3),
'2009' = c(6, 6, 4, 3,6,6,4,3),
'2010' = c(7, 5, 4, 3,6,6,4,3),
'2011' = c(7, 5, 4, 3,7,5,4,3))
temp1 <- dplyr::filter(data1, item != 'Age for primary school') %>%
dplyr::group_by(country) %>%
dplyr::mutate(n_grade = max(colSums(.[,-c(1:2)], na.rm = TRUE)))
【问题讨论】:
-
你能显示你的预期输出吗?
-
你试过
summarise_at或summarise_all吗?