本文介绍了创建字典并用R替换短语中的拉丁词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
与此
类似的帖子中的拉丁词。
Moody_Mudskipper的解决方案很好,但是
让我们研究一下这个短语
Post similar with thisCreate dictionary and replace by it latin words in R.The solution of Moody_Mudskipper is good, butlet's examine this phrase
2049750 TESS чай солид 450mg
依此类推...
实际上我必须得到
and so on...indeed i must get
2049750 ТЕСС чай солид 450mg
但是
output <- with(lapply(dict,as.character), new[match(tolower(input),old)])
output
我只得到NA后。
怎么了?
after i get only NA.What's wrong?
NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
_my dictionary
_my dictionary
dict <- structure(list(
old = structure(c(2L, 1L), .Label = c("mag", "tess"),class = "factor"),
new = structure(c(2L, 1L), .Label = c("маг", "тесс"), class = "factor")),
.Names = c("old", "new"), class = "data.frame", row.names = c(NA, -2L))
输入
input
input<-("2049750 TESS чай солид 450mg")
所需输出
desired output
2049750 ТЕСС чай солид 450mg
now i获取输出
now i get output
1.Na
2.Na
...
35000 NA
推荐答案
您可以尝试以下方法:
library(stringr)
dict2 <- setNames(toupper(as.character(dict$new)),
paste0("\\b",toupper(dict$old),"\\b"))
str_replace_all(input, dict2)
# [1] "2049750 ТЕСС чай солид 450mg"
这篇关于创建字典并用R替换短语中的拉丁词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!