我想从数据框上的操作中排除一个列。当然,我可以在没有要排除的列的情况下复制数据帧,但这似乎是一种解决方法。我认为必须有一种更简单的子集方式。
所以这个示例代码应该显示我的目标。
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[,!="
非常感谢任何帮助。
答案 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