【发布时间】:2021-12-23 09:12:01
【问题描述】:
我有一个列表列表,我想将其转换为 data.frame。 “内部”列表中的某些元素包含一个矩阵,我想保留列及其名称。
我使用lapply 取得了相当大的进步,现在我得到了另一个具有这种模式的列表:
[[1]]
[[1]]$X
[1] 0.100
[[1]]$Y
VAL LCI UCI
AB 1000 500 1300
CD 30 10 400
这种模式重复了大约 200 行。
现在的问题是我想创建一个包含 4 列的 data.frame:X、VAL、LCI、UCI。显然我会有交替“AB”和“CD”的行,因为这些行名在我的列表中是固定的。
有人知道如何执行此操作吗?
这是一个可重现的示例 - 虽然不花哨,但此代码生成的 list1 正是我需要在数据框中转换的对象:
#Create list x
var1 <- 0.100
var1 <- list(var1)
names(var1) <- "x"
#Create list y
var2 <- matrix(1:6, nrow = 2)
rownames(var2) <- c("AB","CD")
colnames(var2) <- c("VAL","LCI","UCI")
var2 <- list(var2)
names(var2) <- "y"
#Create a second element
var3 <- 0.200
var3 <- list(var3)
names(var3) <- "x"
var4 <- matrix(7:12, nrow = 2)
rownames(var4) <- c("AB","CD")
colnames(var4) <- c("VAL","LCI","UCI")
var4 <- list(var4)
names(var4) <- "y"
#Create a list
list1 <- list(c(var1,var2),c(var3,var4))
【问题讨论】:
-
分享一个可重现的例子。
-
@M-- 我添加了一个 reprex - 虽然并不花哨 - 创建一个对象 (list1),这正是我需要在具有 4 列(X、VAL、LCI、 UCI)
标签: r list dataframe dplyr lapply