【发布时间】:2018-10-12 10:52:38
【问题描述】:
与此类似的帖子 Create dictionary and replace by it latin words in R。 Moody_Mudskipper 的解决方案很好,但是 让我们检查一下这句话
2049750 TESS чай солид 450mg
等等…… 确实我必须得到
2049750 ТЕСС чай солид 450mg
但是
output <- with(lapply(dict,as.character), new[match(tolower(input),old)])
output
在我只得到 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 NA
_我的字典
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
【问题讨论】:
-
你怎么能得到这么多
NAs? -
@AntoniosK,我有 35000 行,所以在使用 dict 之后,我得到 35000 行,NA
-
您可以使用
dput()发布new和old的样本吗? -
@jdobres,我做到了,请检查
-
当您执行您发布的示例时,为什么不发布您得到的输出?所以,想要帮助的人可以准确地复制这个问题......