这是我的第一篇文章,因此所有张贴技巧均会有所帮助:)
我想合并两个具有相同人员ID的数据框,但是标识符彼此之间(在系统上)略有不同。
A
中ID
是:<3位数>B
中ID
是:-<3位数>请参见下面的示例:
A_ID <- c("A123", "B213", "C421", "C312")
A_score <- c(8,10,9,10)
A <- data.frame(A_ID, A_score)
colnames(A) <- c("ID", "A_score")
B_ID <- c("A-123", "B-213", "C-421", "C-312")
B_score <- c(2,10,9,10)
B <- data.frame(B_ID, B_score)
colnames(B) <- c("ID", "B_score")
问题在于,由于-
dfB
标识符位于中间,因此这些df不会合并。
我想要实现的是合并(fulljoin
)的DFS到表格列:ID
| A_score
| B_score
。
我尝试将字符向量转换为字符串,然后在字母后的字符位置2处分割ID
(A
),添加a -
,然后粘贴并转换回字符向量。但是我觉得这可能不是最有效,最简单的方法。
谢谢!
尝试使用gsub()
清理第二个id变量,然后将数据帧合并到一个数据管道中。这里的代码使用tidyverse
函数:
library(tidyverse)
#Code
NewA <- A %>% full_join(B %>% mutate(ID=gsub('-','',ID)))
输出:
ID A_score B_score
1 A123 8 2
2 B213 10 10
3 C421 9 9
4 C312 10 10
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句