我有一个数据框如下
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
显然不知道我在做什么。
答案 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]