我将如何获取列表的元素并将它们制作成数据框,每个数据框名称与列表元素名称一致?
前任:
exlist <- list(west=c(2,3,4), north=c(2,5,6), east=c(2,4,7))
我绊倒的地方在于独特数据帧的实际命名——我不知道如何使用 for() 循环或 lapply 来做到这一点:
for(i in exlist) {
i <- data.frame(exlist$i)
}
给了我一个名为 i 的空数据框,而我希望制作三个数据框(一个称为西,另一个称为北,另一个称为东)
当我使用 lapply 语法并调用单个列表元素名称时,我得到空数据框:
lapply(exlist, function(list) i <- data.frame(list["i"]))
产量
data frame with 0 columns and 0 rows
> $west
list..i..
1 NA
$north
list..i..
1 NA
$east
list..i..
1 NA
最佳答案
如果要将列表元素转换为 data.frame
s,你可以尝试
lapply(exlist, as.data.frame)
或者(如@Richard 所建议的),取决于您想要的输出:
lapply(exlist, as.data.frame.list)
是总是 建议将多个数据框保存在一个列表中,而不是污染你的全局环境,但如果你坚持这样做,你可以使用
list2env
(不要这样做),例如:list2env(lapply(exlist, as.data.frame.list), .GlobalEnv)
关于r - 列出 R 中数据帧的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414836/