gpt4 book ai didi

r - 从不等长的列表中加入数据帧

转载 作者:行者123 更新时间:2023-12-05 02:58:32 24 4
gpt4 key购买 nike

我有两个要合并的数据框列表,我尝试了以下操作:

A <- data.frame(ID = c(1,2,3),
var1 = c(3,4,5),
var2 = c(6,3,2))
B <- data.frame(ID = c(1,2,3),
var1 = c(4,4,5),
var2 = c(6,7,3))
C <- data.frame(ID = c(1,2,3),
var1 = c(1,4,8),
var2 = c(9,2,3))

list1 <- list(A = A, B = B, C = C)
list2 <- list(A = A, B = B)

combined <- map2(list1, list2, full_join, by = 'ID')

这会返回两个列表长度不同的错误。我想到的唯一其他方法是向第二个列表添加一个空白数据框,使它们的长度相同。

是否可以合并这两个列表,以便我得到一个列表,其中 A1 与 A2 相连,B1 与 B2 相连,而 C1 保持原样?

编辑:突出显示我还没有命名列表的元素,我现在已经命名了

最佳答案

如果我们有命名列表,那么我们可以:

list1 <- list(A = A, B = B, C = C)
list2 <- list(A = A, B = B)

x12 <- intersect(names(list1), names(list2))
x1 <- setdiff(names(list1), names(list2))
x2 <- setdiff(names(list2), names(list1))

combined <- c(
map2(list1[ x12 ], list2[ x12 ], full_join, by = 'ID'),
list1[ x1 ],
list2[ x2 ])

关于r - 从不等长的列表中加入数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934147/

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