返回

R-基于另一个向量替换列表中的项

发布时间:2022-03-14 10:36:35 449

我正在做一个模糊名称匹配练习,并试图使用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列表的长度不同。我不认为我可以取消列表并更改它,因为我需要保留与门牌号和房子里其他动物的关联。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
相关帖子