如何根据colMeans

时间:2015-10-20 19:41:30

标签: r

我有一个数据框如下

Me    You   They   Him     She
1      4      6     3      233
82     0      2     4      122
98     2      5     2       99

我想获得一个新的数据框,其中只包含colMeans> 30的那些列,因此结果应如下所示

Me    She
1     233
82    122
98    99

我试过像

这样的东西
dfNew<-subset(df,colMeans(df[, 1:ncol(df)]>30))

但得到了错误

Error in subset.data.frame(df[, 1:ncol(df)]>  : 
  'subset' must be logical

显然不知道我在做什么。

2 个答案:

答案 0 :(得分:2)

试试这个:

df[,colMeans(df)>30]

答案 1 :(得分:2)

我认为这是你正在寻找的东西

这一步只是我创建数据。

Me <- c(1,82,98)
You <- c(4,0,2)
They <- c(6,5,5)
Him <- c(3,4,2)
She <- c(233,122,99)
df <- as.data.frame(cbind(Me, You, They, Him, She))

这就是你想要的。

df[, sapply(df, mean) > 60]