我有一列字符串,下面是一个例子:
"ABC">
'def'
123
456
吉伊
杰克尔
MNO23
我想删除带有引号和数字的值,所以我希望我的最终数据看起来像
吉伊
杰克尔
MNO23
任何帮助如何在 R 中执行此操作?
我们可以从base R
中使用grepl
(或grep
(
subset(df1, !grepl("'", col1))
或与grep
df1[grep("'", df1$col1, invert = TRUE),]
如果我们需要删除这两个数字,只需字符串和'
subset(df1, grepl('^[A-Za-z]+$', col1))
或者改变前面的条件,检查字符串的开头(^
(到结尾($
(是否有'
或(|
(一个或多个数字([0-9]+
(,并否定(!
(从grepl
导出的逻辑向量
subset(df1, !grepl("'|^[0-9]+$", col1))
# col1
#5 ghi
#6 jkl
或者如果它是任何数字
subset(df1, !grepl("'|[0-9]", col1))
# col1
#5 ghi
#6 jkl
数据
df1 <- data.frame(col1 = c("'abc'", "'def'", 123, 456, "ghi", "jkl"), stringsAsFactors = FALSE)