gpt4 book ai didi

r - cbind 与部分嵌套列表

转载 作者:行者123 更新时间:2023-12-04 13:15:44 27 4
gpt4 key购买 nike

我正在尝试 cbindunnestas.data.table部分嵌套的列表。

id <- c(1,2)
A <- c("A1","A2","A3")
B <- c("B1")
AB <- list(A=A,B=B)
ABAB <- list(AB,AB)
nested_list <- list(id=id,ABAB=ABAB)
length id 与 ABAB 相同(在本例中为 2)。我不知道如何 unlist此列表的一部分 (ABAB) 和 cbind另一部分(id)。这是我想要的 data.table 的结果:
data.table(id=c(1,1,1,2,2,2),A=c("A1","A2","A3","A1","A2","A3"),B=rep("B1",6))
id A B
1: 1 A1 B1
2: 1 A2 B1
3: 1 A3 B1
4: 2 A1 B1
5: 2 A2 B1
6: 2 A3 B1

最佳答案

我没有测试更一般的情况,但这适用于 OP 示例:

library(data.table)

as.data.table(nested_list)[, lapply(ABAB, as.data.table)[[1]], id]
# id A B
#1: 1 A1 B1
#2: 1 A2 B1
#3: 1 A3 B1
#4: 2 A1 B1
#5: 2 A2 B1
#6: 2 A3 B1

或另一种选择(可能更快,但更冗长):
rbindlist(lapply(nested_list$ABAB, as.data.table),
idcol = 'id')[, id := nested_list$id[id]]

关于r - cbind 与部分嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45151431/

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