【发布时间】:2013-01-18 21:06:34
【问题描述】:
比如说,我有一个字符向量
一个 [1] 《嗨,快点来吧,节目太棒了》《我感冒了》
d [1] “尽快” “可怕” “冷” “哈哈” “rofl”
如果在“a”中找到任何单词(来自“d”),我应该用空格替换。如何在 R 中实现?
【问题讨论】:
-
您能否说明替换发生的位置——在向量“a”或向量“d”中?
标签: r list merge vectorization
比如说,我有一个字符向量
一个 [1] 《嗨,快点来吧,节目太棒了》《我感冒了》
d [1] “尽快” “可怕” “冷” “哈哈” “rofl”
如果在“a”中找到任何单词(来自“d”),我应该用空格替换。如何在 R 中实现?
【问题讨论】:
标签: r list merge vectorization
我想我理解但可能是错的。你可以试试:
a <- c("hi come asap, the $#!+ show is awsome", "I am suffering from cold")
d <- c("asap", "awsome", "cold", "lol", "rofl")
library(qdap)
mgsub(d, "", a)
产量:
> mgsub(d, "", a)
[1] "hi come , the $#!+ show is" "I am suffering from"
【讨论】:
也许以下内容对您有用:
a <- c("hi come asap, the show is awsome", "I am suffering from cold")
d <- c("asap", "awsome", "cold", "lol", "rofl")
d[d %in% gsub("[[:punct:]]", "", unlist(strsplit(a, " ")))] <- " "
d
# [1] " " " " " " "lol" "rofl"
或者,相反的方式:
a <- c("hi come asap, the show is awsome", "I am suffering from cold")
d <- c("asap", "awsome", "cold", "lol", "rofl")
gsub(paste(d, collapse = "|"), " ", a)
# [1] "hi come , the show is " "I am suffering from "
【讨论】:
paste(d, collapse = "|") 创建了一个看起来像"asap|awesome|cold|lol|rofl" 的交替模式,意思是寻找“尽快”或“真棒”或....你是否也得到了这个小例子的错误,或者只是你的实际数据?您是否加载了任何可能干扰基本 R 的 gsub 的包?
?regex)。