比方说,我们有像子集与矢量指定colums下降
df <-read.table(text="
colA colB colC colD
1 2 3 4
5 6 7 8
",header=TRUE,sep="")
经常有人解释说,一个能存储的列名被关在一个载体本身一个简单的数据帧:
rows_to_select <- c("colA", "colB")
使用subset(df, select=rows_to_select)
进行子集将产生预期结果。
但是,为什么我不能简单地将负号放在前面,即subset(df, select=-rows_to_select)
?它给出了错误Error in -keep : invalid argument to unary operator Calls: subset -> subset.data.frame -> eval -> eval
。
但是,subset(df, select=-c(colA, colB))
的作品。我是否总是需要使用setdiff keep <- setdiff(names(df), rows_to_select)
这样我可以subset(df, select=keep)
?
'子集(DF,选择= -xtfrm(rows_to_select))' – rawr 2014-08-29 21:16:00
@rawr似乎即不与'rows_to_select <工作 - C( “COLB”, “COLC”)' – MrFlick 2014-08-30 00:01:49
亚..你需要'rows_to_select < - factor(c(“colB”,“colC”),levels = colnames(df))'如果需要的话@MrFlick – rawr 2014-08-30 02:07:08