我有一张桌子说,表A:
uid pid code
1 1 aaa
2 1 ccc
3 4 ddd
4 2 eee
我有另一张桌子,表B:
pid msg
1 good
2 inspiring
3 thing to wtch
4 terrible
现在,我想用表B中的msg替换表A中的pid。
我使用了merge(tableA, tableb, by =c("pid"))
我的结果是
uid pid code msg
1 1 aaa good
2 1 ccc good
3 4 ddd terrible
4 2 eee inspiring
我希望结果为
uid msg code
1 good aaa
2 good ccc
3 terrible ddd
4 inspiring eee
答案 0 :(得分:2)
您的方法似乎绝对正确,只需要进一步的步骤:
使用tidyverse
函数,您可以执行以下操作:
TableA %>%
left_join(TableB) %>%
select(uid, msg, code)
给出:
uid msg code
1 1 good aaa
2 2 good ccc
3 3 terrible ddd
4 4 inspiring eee
答案 1 :(得分:0)
Base R解决方案:
newtable = merge(tableA,tableB,by = "pid")
newtable$pid = NULL
newtable = newtable[order(newtable$uid,decreasing=FALSE),c(1,3,2)]