首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串替换为匹配到另一个数据帧

将字符串替换为匹配到另一个数据帧
EN

Stack Overflow用户
提问于 2022-09-29 09:46:28
回答 2查看 25关注 0票数 0

我希望根据df2中的列species中的匹配字符串,用df1的列genus替换df1列ID中的字符串。任何小费,特别是dplyr。也许是left_join?

代码语言:javascript
复制
> df1
             genus                 species
1  Orthobunyavirus           Variola virus
2 Alphatorquevirus     Torque teno virus 6
3     Yatapoxvirus Yaba-like disease virus

代码语言:javascript
复制
> df2
                       ID
1           Variola virus
2     Torque teno virus 6
3 Yaba-like disease virus

代码语言:javascript
复制
desired out
                         ID
1           Orthobunyavirus
2          Alphatorquevirus
3              Yatapoxvirus

> dput(df1)
structure(list(genus = c("Orthobunyavirus", "Alphatorquevirus", 
"Yatapoxvirus"), species = c("Variola virus", "Torque teno virus 6", 
"Yaba-like disease virus")), class = "data.frame", row.names = c(NA, 
-3L))
> dput(df2)
structure(list(ID = c("Variola virus", "Torque teno virus 6", 
"Yaba-like disease virus")), class = "data.frame", row.names = c(NA, 
-3L))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-29 09:50:43

您可以简单地使用match

代码语言:javascript
复制
df2$ID <- df1$genus[match(df2$ID, df1$species)]

df2
#>                 ID
#> 1  Orthobunyavirus
#> 2 Alphatorquevirus
#> 3     Yatapoxvirus
票数 3
EN

Stack Overflow用户

发布于 2022-09-29 09:56:41

代码语言:javascript
复制
df2$ID <- df1$genus[match(df2$ID,df1$species)]

替换它,删除原始df2数据。

代码语言:javascript
复制
df3 <- data.frame(ID = df1$genus[match(df2$ID,df1$species)])

创建包含结果的第三个df。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73893463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档