目的是通过清除所有变量名称复制来整理数据集。 一个典型的例子:
var.name <- "blue cat" #"true" variable name
在数据集中找到,其中包含以下条目/复制:
char <- c("blue cat","blue cat blueing","blue cats",
"blue cat dog", "blue catts cat","blue cat cat")
理想的结果是将所有上述复制重命名为 var.name ,即&#34;蓝猫&#34;。以下grep(..)执行此操作:
char[grep(paste("blue cat", collapse="|"), char, value=F)] <- var.name
这种方法的缺点是必须手动搜索&amp;输入所有 char 次出现。理想的解决方案是通过正则表达式解析&#34; blue cat&#34; ,并将其替换为匹配字符串的位置。
有什么想法吗?非常感谢。
答案 0 :(得分:3)
如果你需要用正则表达式解析,这就足够了。
sub('.*blue cat.*', var.name, char)
# [1] "blue cat" "blue cat" "blue cat" "blue cat" "blue cat" "blue cat"
答案 1 :(得分:2)
不像hwnd那样光滑,但仍然有效
char[grepl("blue cat", char)] <- var.name
grepl
返回逻辑而不是数字。如果您希望获得更透明的代码,可以使用str_detect
包中的stringr
char[str_detect(char, "blue cat")] <- var.name