尝试计算列平均值时出错-R

时间:2018-08-08 07:29:52

标签: r dplyr

我有一个数据框,所以当我尝试计算A列的平均值时,我只写了

mean(df$A)

它工作正常。

但是当我尝试仅计算部分数据帧的均值时,会收到错误消息,指出它不是数字或逻辑值

df$A %>% filter(A=="some value") %>% mean(df$A) 

A的类型为double。我也尝试使用

将其转换为数字
df$A <- as.numeric(as.character(df$A))

但是没有用。

2 个答案:

答案 0 :(得分:2)

最好是提供A列的示例。

但是,仅通过查看您的问题,问题就出在magrittr-dplyr语法中。

基本语法:

year  sh1  sh2  sh3  sh4  sh5  newVariable
2011   0    1    1    0    0        1
2012   1    1    0    1    1        2
2013   0    0    0    0    0        0
2014   1    1    0    0    0        1
2015   1    1    1    1    1        1

dplyr 与管道:

mean(df$A[df$A == 'some value'])

请注意语法和管道,更多信息here

答案 1 :(得分:1)

尝试df %>% filter(A==some value) %>% summarise(mean(A))

  

请注意,由于some value,均值将为filter。   另外,mean()对于类double的对象也很好用