从列表中的功能中删除列,但不在另一个列表中显示

时间:2015-12-04 01:36:36

标签: r dataframe

说,我的变量如下。

df = read.csv('somedataset.csv') #contains 'col1','col2','col3','col4','col5' say
colsSomeRemoveSomeDontRemove = c('col1','col2','col3')
colsDontRemove = 'col2'

我想从df中删除 colsSomeRemoveSomeDontRemove 中的所有列,但不属于 colsDontRemove

所以基本上,最后我的df应该只包含列'col2','col4','col5'

我该怎么做?

我尝试过以下操作,但无法使其正常工作

df1 = cbind(df[,which(!(names(df) %in% colsSomeRemoveSomeDontRemove))],as.data.frame(df[,colsDontRemove]))

1 个答案:

答案 0 :(得分:2)

df[, !(colnames(df) %in% setdiff(colsSomeRemoveSomeDontRemove, colsDontRemove))]