我在使用dplyr语法时遇到了一些麻烦.我有一个包含不同变量和一个分组变量的数据框.现在我想使用R中的dplyr计算每个组中每列的平均值.
df <- data.frame(
a = sample(1:5, n, replace = TRUE),
b = sample(1:5, n, replace = TRUE),
c = sample(1:5, n, replace = TRUE),
d = sample(1:5, n, replace = TRUE),
grp = sample(1:3, n, replace = TRUE)
)
df %>% group_by(grp) %>% summarise(mean(a))
Run Code Online (Sandbox Code Playgroud)
这给出了"grp"表示的每个组的列"a"的平均值.
我的问题是:是否有可能同时获得每个组中每列的方法?或者我必须df %>% group_by(grp) %>% summarise(mean(a))为每一栏重复一次?
我想拥有的是什么
df %>% group_by(grp) %>% summarise(mean(a:d)) # "mean(a:d)" does not work
Run Code Online (Sandbox Code Playgroud) 假设我们有一个df像这样的数据框
book_id book_category book_word_hi book_word_bye book_word_yes
1 drama 3 0 4
2 action 1 4 5
3 drama 5 3 2
Run Code Online (Sandbox Code Playgroud)
我想计算列中值的数量book_word,并将它们汇总到每个 的表中book_category。
所以这里的输出应该类似于:
drama: 17
action: 10
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?