我希望根据df2中的列species中的匹配字符串,用df1的列genus替换df1列ID中的字符串。任何小费,特别是dplyr。也许是left_join?
> df1
genus species
1 Orthobunyavirus Variola virus
2 Alphatorquevirus Torque teno virus 6
3 Yatapoxvirus Yaba-like disease virus。
> df2
ID
1 Variola virus
2 Torque teno virus 6
3 Yaba-like disease virus。
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))发布于 2022-09-29 09:50:43
您可以简单地使用match
df2$ID <- df1$genus[match(df2$ID, df1$species)]
df2
#> ID
#> 1 Orthobunyavirus
#> 2 Alphatorquevirus
#> 3 Yatapoxvirus发布于 2022-09-29 09:56:41
df2$ID <- df1$genus[match(df2$ID,df1$species)]替换它,删除原始df2数据。
df3 <- data.frame(ID = df1$genus[match(df2$ID,df1$species)])创建包含结果的第三个df。
https://stackoverflow.com/questions/73893463
复制相似问题