创建字典并用它替换R中短语中的拉丁词
与此类似的帖子 . Moody_Mudskipper的解决方案很好,但是 让我们检查一下这个短语创建字典并用它替换R中短语中的拉丁词,r,string,dplyr,R,String,Dplyr,与此类似的帖子 . Moody_Mudskipper的解决方案很好,但是 让我们检查一下这个短语 2049750 TESS чай солид 450mg 等等。。。 事实上,我必须 2049750 ТЕСС чай солид 450mg 但是 _我的字典 dict <- structure(list( old = structure(c(2L, 1L), .Label = c("mag", "tess"),class = "factor"), new = s
2049750 TESS чай солид 450mg
等等。。。
事实上,我必须
2049750 ТЕСС чай солид 450mg
但是
_我的字典
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))
现在我得到了输出
您可以尝试以下方法:
library(stringr)
dict2 <- setNames(toupper(as.character(dict$new)),
paste0("\\b",toupper(dict$old),"\\b"))
str_replace_all(input, dict2)
# [1] "2049750 ТЕСС чай солид 450mg"
库(stringr)
dict2你可以试试这个:
library(stringr)
dict2 <- setNames(toupper(as.character(dict$new)),
paste0("\\b",toupper(dict$old),"\\b"))
str_replace_all(input, dict2)
# [1] "2049750 ТЕСС чай солид 450mg"
库(stringr)
dict2你怎么能得到这么多的NA
s?@AntoniosK,我有35000行,所以在使用dict之后,我有35000行,你可以使用dput()
发布new
和old
的样本吗?@jdobres,我做到了,请检查为什么不发布你发布的示例时得到的输出?所以,想要帮助的人可以准确地复制这个问题……你怎么能得到这么多的NA
s?@AntoniosK,我有35000行,所以在使用dict之后,我有35000行,Nac你可以使用dput()
?@jdobres发布new
和old
的样本,我做到了,请检查为什么不发布您发布的示例时获得的输出?所以,想要帮助的人可以准确地复制问题……你能做到吗,所有超过3位数的数字都被删除了?因此,必须删除此2049750。和450必须保留:)如果它仅位于字符串的开头,请使用gsub(“^\\d\\d\\d+?”,“”,输入)
else在存档中搜索或询问新问题;)你能做到吗,所有超过3位数的数字都被删除了?因此,必须删除此2049750。和450必须保留:)如果它仅位于字符串的开头,请使用gsub(“^\\d\\d\\d+?”,“”,输入)
else在存档中搜索或询问新问题;)
input<-("2049750 TESS чай солид 450mg")
2049750 ТЕСС чай солид 450mg
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"