大佬教程收集整理的这篇文章主要介绍了merge 和 Reduce 是否做同样的事情并且 all=True 和 by 是否可以达到相同的目标,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试将 4 个数据合并在一起。我试过 @H_430_3@merge 和 reduce
。我想知道我是否以正确的方式使用它们。结果数据似乎相同。我需要第二眼来确保我没有做错。
这是我的代码:
我使用了合并:
SUB_counts <- as_tibble(merge(count_pts,count_SUB,all = TRUE,sort = falSE))
SUB_counts_Re <- as_tibble(merge(count_pts_Re,count_SUB_Re,sort = falSE))
SUB_counts_merge <- full_join(count_pts,by = "SUBCOD")
然后我也尝试了Reduce
:
test<-Reduce(function(x,y) merge(x,y,all=TRUE),List(count_pts,count_pts_Re,count_SUB_RE))
看起来像 test=SUB_counts_merge
有人能帮我更好地理解这两个吗?
all = TRUE
时,是否与使用 by = "SUBCOD"
相同?Reduce
时,没有地方放置 'by`,我们怎么知道它们是使用正确的变量合并的?非常感谢。
是的,SUB_counts_merge
和 test
是一样的。
对于 SUB_counts_merge
,您正在遵循流程:
a = 1 + 2
b = 3 + 4
c = a + b
而对于 test
,您所遵循的过程是:
d = 1 + 2 + 3 + 4
很明显 c
和 d
是一样的。但我们也看到,获得 d
的过程更加简单直接,无需任何中间变量。
回答您的问题:
不,它们不一样。如果您正在合并两个数据框 df1
和 df2
,all = TRUE
用于指定 df1
中的所有行以及 df2
中的所有行都被保留。 by = "SUBCOD"
用于指定要合并的列。由于您没有在此处明确指定 by
参数,因此它将两个数据框中的公共列作为 by
值。此外,我建议您遵循基本 R 语法或 dplyr
任何您觉得方便的方法。 @H_430_3@merge 是一个基本的 R 函数,而 full_join
是 dplyr
。当您指定 all = TRUE
时,这是执行完全连接的基本 R 方式,而在 dplyr
中,我们使用 full_join
。
在普通的@H_430_3@merge中有一个地方。你可以这样做
test<-Reduce(function(x,y) merge(x,y,all=TRUE,by = "SUBCOD"),list(count_pts,count_SUB,count_pts_Re,count_SUB_RE))
以上是大佬教程为你收集整理的merge 和 Reduce 是否做同样的事情并且 all=True 和 by 是否可以达到相同的目标全部内容,希望文章能够帮你解决merge 和 Reduce 是否做同样的事情并且 all=True 和 by 是否可以达到相同的目标所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。