r - R:根据部分匹配字符将列添加到数据框
问题描述
我有一个带有 ID 和值列的示例数据框:
ID_short Value
Boar 4
Pig 5
Duck 6
Dog 7
Cat 8
Horse 9
我有另一个数据框,其中有一列具有相同的 ID,但扩展了更多字符:
ID_Extended
Duck_p15
Dog32
PigGG
Horse_p12
Cat_Ok
Boar_Ko_1999_test
我想将此 ID_Extended 列添加到第一个数据帧,并且我希望扩展 ID 仍与正确行中的短 ID 匹配。ID 是类字符。
所需输出的示例:
ID Value ID_Extended
Boar 4 Boar_Ko_1999_test
Pig 5 PigGG
Duck 6 Duck_p15
Dog 7 Dog32
Cat 8 Cat_Ok
Horse 9 Horse_p12
解决方案
这里有一些东西:
df1$D_Extended <-
df2$ID_Extended[sapply(df1$ID_short,
function(x) match(x, substr(df2$ID_Extended, 1, nchar(x))))]
df1
ID_short Value D_Extended
1 Boar 4 Boar_Ko_1999_test
2 Pig 5 PigGG
3 Duck 6 Duck_p15
4 Dog 7 Dog32
5 Cat 8 Cat_Ok
6 Horse 9 Horse_p12
数据:
df1 <- data.frame(
ID_short = c("Boar", "Pig", "Duck", "Dog", "Cat", "Horse"),
Value = 4:9,
stringsAsFactors = FALSE
)
df2 <- data.frame(
ID_Extended = c("Duck_p15", "Dog32", "PigGG","Horse_p12", "Cat_Ok", "Boar_Ko_1999_test"),
stringsAsFactors = FALSE
)
推荐阅读
- android - 我可以在 ViewModel 类中注入 @RootContext 吗?
- asp.net-core - Autofac 无法解析 ASP。NET Core Controller 尝试传递参数进行注册时
- javascript - `button.click` 只显示点击功能但不执行点击
- graphql - 如何使用 Nuxt ServerMiddleware 和 Apollo GraphQL 处理 301 重定向
- php - 标头 PHP 到文本文件 - 删除编码
- python - Python多进程 - 索引多个返回
- kubernetes - helm upgrade - 安装无法正常工作
- pyspark - 没有 udf 的动态子字符串
- javascript - 猫鼬中的组成唯一ID
- angular - Ionic imagepicker 插件未安装错误