我在使用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
列应计算 value_count == 'A'
的 values
的平均值。
通常我会执行两个单独的命令,然后稍后合并结果,但我想可能有一种更方便的方法,只是我不太明白。
提前感谢。
A_mean = mean(values[value_type=="A" & !is.na(value_type)])
。在您的过滤变量可能有您不想计算的NA的任何地方都要包含它。 - dez93_2000drop_na(value_type) %>%
。 - dez93_2000