gpt4 book ai didi

r - 获取列表对象的名称,然后将该名称添加为每个列表的新列

转载 作者:行者123 更新时间:2023-12-03 08:19:59 26 4
gpt4 key购买 nike

我有一个数据框列表。然后我想提取列表对象名称并将其添加为数据框中的第一列。然后我想取消列出并创建一个按行组合每个数据帧的数据帧。它们都具有相同的尺寸。

下面我的数据框列表的一小部分

mylist <- list(SiO2 = structure(c(5.121, 0.00836394378003293, 0.0199499373432604, 
5, 10, 1.87883863763252, 0.0836503954062112, 2.1240292640167), .Dim = c(1L,
8L), .Dimnames = list(NULL, c("Analyte_Mean", "SDBetweenGroup",
"SDWithinGroup", "replicates", "NumSamples", "FValue", "PValue",
"FCritical"))), Al2O3 = structure(c(2.0812, 0.0053103672189408,
0.0159059737205869, 5, 10, 0.442687747035557, 0.903289230024797,
2.1240292640167), .Dim = c(1L, 8L), .Dimnames = list(NULL, c("Analyte_Mean",
"SDBetweenGroup", "SDWithinGroup", "replicates", "NumSamples",
"FValue", "PValue", "FCritical"))))

我有以下方法来获取列表对象名称的名称。但不确定如何将其作为每个数据帧的列传递回来

names(mylist)

制作我拥有的单个数据框

new_list <- as.data.frame(do.call(rbind, mylist)) 

感谢任何帮助。

最佳答案

如果我理解正确的话,我可能会使用 purrr 库。 imap_dfr 会将矩阵及其名称传递给函数,然后将结果绑定(bind)到单个数据帧中。

library(purrr)

new_list <- imap_dfr(mylist, function(mat, name) {
result <- as.data.frame(mat)
result$name <- name
result
})

给出

> new_list
Analyte_Mean SDBetweenGroup SDWithinGroup replicates NumSamples FValue PValue FCritical name
1 5.1210 0.008363944 0.01994994 5 10 1.8788386 0.0836504 2.124029 SiO2
2 2.0812 0.005310367 0.01590597 5 10 0.4426877 0.9032892 2.124029 Al2O3

关于r - 获取列表对象的名称,然后将该名称添加为每个列表的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68157970/

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