假设我有多个相同列但具有不同顺序的data.frames . 我想一次从所有数据框中删除一列 . 例如,假设存在名为“Group 1”和“Group 2”的列 . 我尝试了这个但失败了 .
remover<-function(input){
input<-input[,-c("Group 1","Group 2")]
return(input)
}
另外,我看到了这个链接(How to remove certain columns in multiple data frames in R?)并且不想使用列表 .
任何帮助,将不胜感激 .
1 回答
首先,使用带有空格的变量名称并不是很明智 . 而是使用点,例如
"Group.1"
.第二,虽然
c("Group 1","Group 2")
有效,-c("Group 1","Group 2")
赢了't, because you'试图用字符做算术:- "Group.1"
没有多大意义,是吗?所以我们可以使用
%in%
这是一种匹配运算符和which()
,它给出了元素的索引 .还有另一个选项来实现对colnames的否定,而不是
-
. 我们可以使用!
.使用
!
可能会有轻微的速度优势 .数据: