我有一项调查的结果,其中一组分析器有错误,例如拼写错误,UppercAseS/小写,.
因此,我需要类似于查找和替换之类的解决方案(我已经找到了一些可能的功能,但它们似乎都不起作用。我有点像no0b)
...but不是一个一个地寻找和替换,而是创建一个向量(?)用正确的答案代替“错误”,整理我的课文,以便以后能看到结果。
我试过这个
将VAR1看作是芒类型:
VAR1 <- c("motorbyke","motor bike","Mbike","Motor B","Motor","Bike")我想把拼错的喷泉改成正确的,比如说“摩托车”.
DB %>%
mutate(VAR1 = replace(VAR1, VAR1 == "misspelling", "correct answer")) 但是单独做这件事有太多错误.
有什么解决办法吗?
谢谢
编辑:尝试添加一个示例
发布于 2021-12-17 18:31:42
下面是使用tidyverse和left_join的一个可能的解决方案:
DB <- data.frame(
VAR1=c(c("motorbyke","motor bike","Mbike","Motor B","Motor","Bike"),
sample(stringr::words, 10)))
correction_df <- data.frame(
cbind(correction="motorbike", incorrect=c("motorbyke","motor bike","Mbike","Motor B","Motor","Bike"))
)
DB %>%
left_join(correction_df, by=c(VAR1="incorrect")) %>%
mutate(VAR1=ifelse(is.na(correction), VAR1, correction)) %>%
select(-correction)新条目可以通过提供的语法添加到correction_df中。或者,fuzzyjoin package会做一些非常类似的事情,并且可能会自动化您感兴趣的一些更正。
发布于 2021-12-17 18:36:38
您可以为向量的str_replace创建一个模式,然后用motorbike (列或向量等)替换所有这些。
VAR1 <- c("motorbyke","motor bike","Mbike","Motor B","Motor","Bike")
my_pattern <- paste(VAR1, collapse = "|")
library(stringr)
str_replace(VAR1, my_pattern, 'motorbike')产出:
[1] "motorbike" "motorbike" "motorbike" "motorbike" "motorbike" "motorbike"https://stackoverflow.com/questions/70397042
复制相似问题