gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:49:41 25 4
gpt4 key购买 nike

我有两个要合并的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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com