通过子集删除列会引发一元无效参数错误

时间:2015-08-07 03:37:48

标签: r subset

我有一个具有相当奇怪的列名的数据帧(它是几个其他数据帧的组合)。每次我尝试子集并删除列时,都会给我一个错误Error in -c("surveys$gender") : invalid argument to unary operator。有人可以解释为什么会这样吗?

df1<-NULL
df1$a<-c(1,2,3,4,5)
df1$b<-c(4,5,2,6,1)
df1$c<-c(0,9,0,6,3)
surveys<-NULL
surveys$gender<-c(0,0,0,1,1)
df1<-as.data.frame(df1)

df1<-cbind(df1,surveys$gender)
male<-subset(df1,'surveys$gender'<1,select=-c('surveys$gender')) #trying to get only 0 and remove the gender column from the result

2 个答案:

答案 0 :(得分:2)

将您的subset行更改为:

df1 <- NULL
df1$a<-c(1,2,3,4,5)
df1$b<-c(4,5,2,6,1)
df1$c<-c(0,9,0,6,3)
df1$gender<-c(0,0,0,1,1)
male <- subset(df1, gender < 1, select = -gender)

也就是说,使用裸列名而不是引号。

答案 1 :(得分:0)

这有用吗?

male <- df1[df1[['surveys$gender']] < 1, ]
male[['surveys$gender']] <- NULL
male

  a b c
1 1 4 0
2 2 5 9
3 3 2 0