2013-04-30 4 views
0

Я хотел бы исключить один столбец из операции над файловым кадром. Конечно, я мог бы просто реплицировать dataframe без столбца, который я хочу исключить, но это, кажется, обходное решение. Думаю, должен быть более простой способ подмножества.R: Подмножество: использование всего фрейма данных, за исключением одного столбца

Так что этот примерный код должен показать, что я делаю.

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

Любая помощь будет очень признательна.

ответ

2

Попробуйте

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

Альтернатива может быть %in% оператора (что очень удобно, если вы хотите использовать несколько различных именованные столбцы):

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