r - 是否存在用于与all = TRUE合并的R dplyr方法?

标签 r dataframe dplyr

我有两个要合并的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_joininner_joinsemi_joinanti-join,但是这些都不像mergeall=TRUE一样。

另外-是否有一种将NA设置为0的快速方法?到目前为止,我使用x$trees[is.na(x$trees)] <- 0;的工作都很费力(我需要每列一个命令),而且似乎并不总是有效。

谢谢

最佳答案

dplyr(0.4.0)的最新版本现在具有full_join选项,我相信这是您想要的。

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)

退货
> merge(cost, trees, all=TRUE)
        farm cost trees
    1 farm A   10    20
    2 office  100    NA
    3 farm B   NA    30


library(dplyr)
full_join(cost, trees)

退货
> full_join(cost, trees)
Joining by: "farm"
    farm cost trees
1 farm A   10    20
2 office  100    NA
3 farm B   NA    30
Warning message:
joining factors with different levels, coercing to character vector

关于r - 是否存在用于与all = TRUE合并的R dplyr方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841146/

相关文章:

python - Pandas 在列中查找序列或模式

r - 如何根据另一列的值重命名嵌套小标题中的列

r - 如何保留空间特征的唯一交集并删除边界外的所有内容?

r - 如何删除按特征排序的重复项?

python - Pandas - 创建新列,其中值取自同一数据框中的其他行

python - DataFrame 按组计算每只股票的对数返回

r - dplyr::mutate 是否适用于记录样式的列?

r - 转换 Dataframe 以在 ggplot2 中制作瀑布图

javascript - Python/R 中的网页抓取 javascript

c++ - 如何在 R 对象中存储 CPP 类?