r - 为列表的每个元素创建一个单独的变量

标签 r list

我有一个数据框列表,它是通过一次读取 25 个 .csv 文件生成的。我想取消列出数据框以开始空间分析。也就是说,我希望列表的每个元素都有单独的数据框。

我试过 unlist() ,但它不会产生我想要的结果。我也尝试了一种方法 lapply() ,但会产生错误。这是我尝试过的:

x <- 1:3
y <- 4:6

l <- lapply(1:2, function(x){data.frame(x, y)})

lapply(1:length(l), function(i){paste('df', i, sep = '') <- data.frame(l[[i]])})

问题似乎在于将数据框分配给粘贴的名称。用 as.character() 包裹它没有帮助。

这确实有效:
"df1" <- data.frame(l[[1]])

似乎问题出在我 paste() 的输出中函数,但输出有 str() 'ch'。有什么想法可以让我的方法奏效吗?有没有更简洁的方法来取消列出我的数据框?

最佳答案

一种方法:

list2env(setNames(l,paste0("df",seq_along(l))), envir = parent.frame()) 

尽管我会在为时已晚之前听取@baptiste 的建议并避免这样做。
为什么?因为两天后你会发现自己被困在使用 get() 中。和 paste和凌乱的循环尝试一次将函数应用于所有数据集。如果你把它们放在一个列表中,你可以做 lapply(l,functionname) .

关于r - 为列表的每个元素创建一个单独的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582631/

相关文章:

r - 是否可以使用 HH :MM:SS format? 打印持续时间

r - Shiny 中的动态绘图高度

python - 将字符串列表 [ '3' , '1' , '2' ] 转换为排序整数列表 [1, 2, 3]

r - 如何将单个 scale_color* 的不同方面映射到 ggplot2 中的不同变量?

r - 如何计算pivot_wider数据框中患者总数的百分比?

python-2.7 - 如何在 python 列表中追加行?

python - 从列表中减去数字不会引发类型错误

python - Pandas : Unable to update empty dataframe by single string

c++ - 如何删除通用容器中的列表?

r - 如何将 R 模型转换为原始二进制或字符串缓冲区?