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

removing columns via subset throws unary invalid argument error

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

将您的 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)

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

这有帮助吗?

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