我有一个具有相当奇怪的列名的数据帧(它是几个其他数据帧的组合)。每次我尝试子集并删除列时,都会给我一个错误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
答案 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