【发布时间】:2021-02-10 19:41:16
【问题描述】:
我整天都在尝试解决这个问题,但没有任何改善。
我正在尝试将以下缩写替换为我的数据集中的以下所需单词:
-缩写: USA, H2O, Type 3, T3, bp
- 所需字词 美国,水,3 型疾病,3 型疾病,血压
输入数据例如
-
[1] 我患有 3 型,它被认为是该疾病的最严重阶段。
-
[2] 多喝 H2O 会让你的皮肤焕发光彩。
-
[3] 我是 T2 还是 T3?请有人帮忙。
-
[4]我们在美国没有这个,但我听说它将在未来 3 年内推出。
-
[5] bp 高意味着我必须注意饮食?
想要的输出是
-
[1] 我患有 3 型疾病,它被认为是最严重的阶段 疾病。
-
[2] 多喝水会让你的皮肤焕发光彩。
-
[3] 我是否患有 3 型疾病?请有人帮忙。
-
[4] 我们在美利坚合众国没有此功能,但我听说将在未来 3 年内提供。
-
[5] 血压高意味着我必须注意饮食?
我尝试了以下代码,但没有成功:
data= read.csv(C:"xxxxxxx, header= TRUE")
lowercase= tolower(data$MESSAGE)
dict=list("\\busa\\b"= "united states of america", "\\bh2o\\b"=
"water", "\\btype 3\\b|\\bt3\\"= "type 3 disease", "\\bbp\\b"=
"blood pressure")
for(i in 1:length(dict1)){
lowercasea= gsub(paste0("\\b", names(dict)[i], "\\b"),
dict[[i]], lowercase)}
我知道我肯定做错了什么。有人可以指导我吗?提前谢谢你。
【问题讨论】:
-
如果您有
data$MESSAGE的样本,看看我们的解决方案是否正确,那就太好了。您介意将dput(sample(data$MESSAGE, 20))的输出附加到您的问题吗? -
使用
stringr::str_replace_all()和命名向量进行替换 -
一个元素可以包含多个值吗?即我们可以有一个像
"USA H2O"这样的字符串吗?还是每个元素只包含一个值,就像示例中一样? -
@teunbrand 感谢您的反馈 - 我在线程上添加了输入和所需输出数据的示例。再次感谢您。
标签: r gsub abbreviation