[英]Create dictionary and replace by it latin words in phrases in R
Post similar with this Create dictionary and replace by it latin words in R . 发布与此“ 创建字典 ”类似的内容, 并用R替换拉丁词 。 The solution of Moody_Mudskipper is good, but let's examine this phrase
Moody_Mudskipper的解决方案很好,但是让我们研究一下这句话
2049750 TESS чай солид 450mg
and so on... indeed i must get 等等...确实我必须得到
2049750 ТЕСС чай солид 450mg
but 但
output <- with(lapply(dict,as.character), new[match(tolower(input),old)])
output
after i get only NA. 在我只得到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 _我的字典
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<-("2049750 TESS чай солид 450mg")
2049750 ТЕСС чай солид 450mg
1.Na
2.Na
...
35000 NA
You can try this : 您可以尝试以下方法:
library(stringr)
dict2 <- setNames(toupper(as.character(dict$new)),
paste0("\\b",toupper(dict$old),"\\b"))
str_replace_all(input, dict2)
# [1] "2049750 ТЕСС чай солид 450mg"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.