R 删除包含特定单词的列

R 删除包含特定单词的列,r,R,我有一个数据集,有313列,52000行信息。我需要删除每个包含“权限”一词的列。我试过grep和dplyr,但似乎都没用 我已经把文件读进去了 testSet <- read.csv("/Users/.../data.csv") testSet试试这个 New.testSet <- testSet[,!grepl("PERMISSIONS", colnames(testSet))] New.testSet我们可以将grepl与一起使用否定 New.testSet <- t

我有一个数据集,有313列,52000行信息。我需要删除每个包含“权限”一词的列。我试过grep和dplyr,但似乎都没用

我已经把文件读进去了

testSet <- read.csv("/Users/.../data.csv")
testSet试试这个

New.testSet <- testSet[,!grepl("PERMISSIONS", colnames(testSet))]

New.testSet我们可以将
grepl
一起使用否定

New.testSet <- testSet[!grepl("PERMISSIONS",row.names(testSet)),
                         !grepl("PERMISSIONS", colnames(testSet))]

New.testSet从问题中我可以理解,OP的数据帧如下:

df <- read.table(text = '
           a b c d
           e f PERMISSIONS g
           h i j k
           PERMISSIONS l m n',
                 stringsAsFactors = F)

df看起来这些答案只做了你想要的一部分。我想这就是你要找的。不过,也许有更好的方法来写这篇文章

library(data.table)
df = data.frame("PERMISSIONS" = c(1,2), "Col2" = c("PERMISSIONS","A"), "Col3" = c(1,2))

  PERMISSIONS        Col2 Col3
1           1 PERMISSIONS    1
2           2           A    2

df = df[,!grepl("PERMISSIONS",colnames(df))]
setDT(df)
ind = df[, lapply(.SD, function(x) grepl("PERMISSIONS", x, perl=TRUE))] 
df[,which(colSums(ind) == 0), with = FALSE]

   Col3
1:    1
2:    2

如果只想删除名为
PERMISSIONS
的列,则可以使用
dplyr
包中的选择功能

df <- data.frame("PERMISSIONS" = c(1,2), "Col2" = c(1,4), "Col3" = c(1,2))

PERMISSIONS Col2 Col3
1    1    1
2    4    2

df_sub <- select(df, -contains("PERMISSIONS"))

Col2 Col3
1    1
4    2

df您的意思是删除列名中包含
权限的列,还是列数据中某个字符串中包含
权限的列?单词“PERMISSIONS”位于列名中或列(即数据)中的行中?他想要具有“PERMISSIONS”的列行中的任何位置也将被删除。OP已被要求两次在评论中澄清这一点。因为它是开放的,我觉得它可以解释。我在(函数(类,fdef,mtable)中得到这个错误
错误:找不到函数“select”for signature“,”data.frame“,”的继承方法,也无法确定原因。有什么建议吗?
df <- data.frame("PERMISSIONS" = c(1,2), "Col2" = c(1,4), "Col3" = c(1,2))

PERMISSIONS Col2 Col3
1    1    1
2    4    2

df_sub <- select(df, -contains("PERMISSIONS"))

Col2 Col3
1    1
4    2