R:子集:使用除一列之外的整个数据帧

时间:2013-04-30 07:57:46

标签: r subset

我想从数据框上的操作中排除一个列。当然,我可以在没有要排除的列的情况下复制数据帧,但这似乎是一种解决方法。我认为必须有一种更简单的子集方式。

所以这个示例代码应该显示我的目标。

df<-data.frame(a=c(1:5),b=c(6:10),c=c(11:15))
# First subset: operate on a single column
mean(df[,1])
[1] 3
# Second subset: with a set of choosen columns
colMeans(df[,c(1,3)])
a  c 
3 13 
# third subset: exclude column b from the operation (expected Output should be like the second subset)
colMeans(df[,!=2])
Error: unexpected '!=' in "colMeans(df[,!="

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:8)

另一种选择是%in%运算符(如果你想使用一些不同的命名列,这很方便):

colMeans( df[ , ! colnames(df) %in% c("b") ])
#a  c 
#3 13 

答案 1 :(得分:7)

> colMeans(df[,-2])
 a  c 
 3 13 

答案 2 :(得分:2)

尝试

colMeans(df[, -2])
##  a  c 
##  3 13