gpt4 book ai didi

r - 按列名合并 3 个 data.frames

转载 作者:行者123 更新时间:2023-12-04 11:43:49 25 4
gpt4 key购买 nike

我有三个独立的data.frames .三人data.frames具有相同的列数和相同的行数。此外,它们具有相同的列名。我正在尝试根据列名合并三个 data.frames。我正在使用以下代码合并两个 data.frames 并返回匹配数。

Merged_DF = sapply(names(DF1),function(n) nrow(merge(DF1, DF2, by=n)))


问题是,虽然在这个例子中有两个 data.frames,但在我的例子中我有 3 个 data.frames。
如何修改代码以合并三个 data.frames 而不是两个?我试图以这种方式修改字符串,只需添加第三个 data.frame 但它不起作用:
  Merged_DF = sapply(names(DF1),function(n) nrow(merge(DF1, DF2, DF3,  by=n)))

它返回以下错误:
 Error in fix.by(by.x, x) :  'by' must specify column(s) as numbers, names or logical

前任:

DF1

 G1  G2  G3
a b f
b c a
c d b

DF2

 G1  G2  G3
A b f
b c a
h M b

DF3

 G1  G2  G3
a b f
b l a
j M v


data.frames 大约有 250 行和 50 列。

最佳答案

今天在研究这个非常相同的问题几个小时后,我想出了这个简单而优雅的解决方案,它使用了 'dplyr' 管道和基本的 R 'merge()' 函数的组合。

MergedDF <- merge(DF1, DF2) %>%
merge(DF3)

正如您在帖子中提到的,这假设列名称相同,并且您要合并的每个数据框中的行数相同。这还将自动消除合并过程中使用的任何重复列(即标识符)。

关于r - 按列名合并 3 个 data.frames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15291613/

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