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

R:子集:使用除一列之外的整个数据帧,r,subset,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 c

我想从数据帧上的操作中排除一个列。当然,我可以只复制数据帧,而不复制我想要排除的列,但这似乎是一种解决方法。我想一定有更简单的方法来解决这个问题

所以这个示例代码应该显示我在做什么

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[,!="
df试试看


另一种方法是%
中的
%操作符(如果您想使用几个不同的命名列,这很方便):

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