R-基于另一个向量替换列表中的项
发布时间:2022-03-14 10:36:35 437
相关标签:
我正在做一个模糊名称匹配练习,并试图使用tidystringdist减少相同名称的拼写变化。我最终得到了一个包含两个向量的匹配数据帧。一个具有原始值,另一个具有需要更改的值。所以我需要返回到名称的原始向量,并根据匹配值的df来更改它们。正常情况下,这很容易,在原始名称上留下_join()并完成。但是,我的原始名称中可以有1到4个值(属性上有多个所有者),因此要更改的值实际上是一个列表列表。以下是我到目前为止所做工作的总结:
library(dplyr)
data_to_change <- data.frame(house_number = c(1,2,3),
animal = rbind(c("dog|cat|monkey"),
c("goldfish"),
c("mouse|dog|rabbit|squirrel"))) %>%
mutate(animal_split = strsplit(animal, "[|]"))
new_names <- data.frame(cbind(V1 = c("dog", "rabbit"),
V2 = c("doggy", "bunny")))
原始数据如下所示:
[[1]]
[1] "dog" "cat" "monkey"
[[2]]
[1] "goldfish"
[[3]]
[1] "mouse" "dog" "rabbit" "squirrel"
我想改变动物的名字,结果如下:
[[1]]
[1] "doggy" "cat" "monkey"
[[2]]
[1] "goldfish"
[[3]]
[1] "mouse" "doggy" "bunny" "squirrel"
我不相信我可以简单地使用replace,因为target和match-df列表的长度不同。我不认为我可以取消列表并更改它,因为我需要保留与门牌号和房子里其他动物的关联。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报