R 删除包含特定单词的列
我有一个数据集,有313列,52000行信息。我需要删除每个包含“权限”一词的列。我试过grep和dplyr,但似乎都没用 我已经把文件读进去了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
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