我有两个要合并的 R 数据框。在直 R 中,您可以执行以下操作:
cost <- data.frame(farm=c('farm A', 'office'), cost=c(10, 100))
trees <- data.frame(farm=c('farm A', 'farm B'), trees=c(20,30))
merge(cost, trees, all=TRUE)
产生:
farm cost trees
1 farm A 10 20
2 office 100 NA
3 farm B NA 30
我正在使用dplyr
,并且希望使用以下解决方案:
left_join(cost, trees)
这会产生接近我想要的东西:
farm cost trees
1 farm A 10 20
2 office 100 NA
在dplyr
我可以看到left_join
,和inner_join
,但这些都没有做with做的事情。semi_join
anti-join
merge
all=TRUE
另外 - 有没有一种快速的方法可以将 NA 设置为 0?到目前为止,我的努力很x$trees[is.na(x$trees)] <- 0;
费力(我需要每列一个命令)并且似乎并不总是有效。
谢谢