我在使用 dplyr
时遇到了一些困难,因为我想同时做两件事,并且想知道这是否可能。
我想计算值的平均值,同时计算其他列中具有特定值的值的平均值。
library(dplyr)
set.seed(1234)
df <- data.frame(id=rep(1:10, each=14),
tp=letters[1:14],
value_type=sample(LETTERS[1:3], 140, replace=TRUE),
values=runif(140))
df %>%
group_by(id, tp) %>%
summarise(
all_mean=mean(values),
A_mean=mean(values), # Only the values with value_type A
value_count=sum(value_type == 'A')
)
因此,A_mean
列应计算 values
的平均值,其中 value_count == 'A'
。
我通常会执行两个单独的命令并稍后合并结果,但我想有一种更方便的方法,但我只是不明白。
提前致谢。
最佳答案
我们可以尝试
df %>%
group_by(id, tp) %>%
summarise(all_mean = mean(values),
A_mean = mean(values[value_type=="A"]),
value_count=sum(value_type == 'A'))
关于r - 在 dplyr 的汇总函数中进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38094244/