繁体   English   中英

通过列表列将列表转换为多个数据框

[英]Convert a list into multiple data frame by list column

我已经导入了一个包含多个工作表的 excel 文件。 这是一个列表格式。

names(mysheets)
#[1] "test_sheet1" "test_sheet2"

Test_sheet1 和 test_sheet2 具有不同的矩阵。

我必须将每个工作表作为单独的数据框。

如果手动执行,代码将如下所示:

s_1 <- data.frame(mysheets[1])
s_2 <- data.frame(mysheets[2])

我尝试编写一个函数来执行此操作,因为我有很多 excel 文件并且每个文件都有多个工作表

功能

p_fun <- function (y) {
for (s_i in 1:2) {
  for (i in 1:2) {
    s_i<- data.frame(y[i])
      return(s_i) }}}

它没有正常工作。 感谢有人可以提供帮助。

您可以使用mget获取对象,然后将它们更改为 data.frame

list_df <- lapply(mget(names(mysheets)), data.frame)

如果您希望它们作为单独的数据框,我们可以这样做

names(list_df) <- paste0('s_', seq_along(list_df))
list2env(list_df, .GlobalEnv)

如果我们在for循环中执行此操作,我们可以使用assign

for(i in seq_along(mysheets)) assign(paste0("s", i), data.frame(mysheets[i]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM