R 如何基于colMeans对数据帧进行子集

R 如何基于colMeans对数据帧进行子集,r,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,col

我有一个如下的数据帧

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))
显然我不知道我在做什么

试试这个:

df[,colMeans(df)>30]
试试这个:

df[,colMeans(df)>30]

我想这是你正在寻找的东西

这一步只是我创建您的数据

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))

我想这是你正在寻找的东西

这一步只是我创建您的数据

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))

您可以尝试使用
dfNew30),]
而不是不提供所需输出的。我并不真正理解输出,但它并不正确您的示例中有一个输入错误,@HubertL复制了它,正如您可能希望
colMeans(df[,1:ncol(df)])>30)
(注意移动的结束括号)。否则,数据帧将转换为逻辑(通过将每个值与30进行比较),然后取
colMeans
,因此它们将介于0和1之间。此调用还选择列,而
子集
按行进行子集。。。总而言之,请参阅@HubertL的答案以了解正确的方法:)您可以尝试使用
dfNew30),]
而不是不提供所需输出的方法。我并不真正理解输出,但它并不正确您的示例中有一个输入错误,@HubertL复制了它,正如您可能希望
colMeans(df[,1:ncol(df)])>30)
(注意移动的结束括号)。否则,数据帧将转换为逻辑(通过将每个值与30进行比较),然后取
colMeans
,因此它们将介于0和1之间。此调用还选择列,而
子集
按行进行子集。。。总而言之,请参见@HubertL的答案以了解正确的方法:)