如何在 r 中的嵌套列表 data.frame 中添加列表名称作为列

莱安德罗·阿尔维斯

我正在尝试添加使用数据集包装子列表的列表名称作为最后一个列,以允许我之后调用 rbind 并加入所有数据集。换句话说,要加入数据集,我需要保留原始列表名称以供参考。我用 for 完成了它,但我想知道是否可以使用 purrr 方法或应用函数,因为我的数据比下面的要复杂得多。为了说明我的意思,我分享一个简单的例子:

x1 <- data.frame(a = 1:3, b = letters[1:3])
x2 <- data.frame(a = 4:6, b = letters[4:6])
y1 <- data.frame(a = 10:15, b = letters[10:15])
y2 <- data.frame(a = 13:17, b = letters[13:17])
l1 <- list(x1, y1)
l2 <- list(x2, y2)
l <- list(l1, l2)
nm <- c("list1", "list2")
names(l) <- nm
lmod <- l
for (i in 1:length(lengths(l))) { 
  for(j in 1:length(l[[i]])) { 
    lmod[[i]][[j]]$nm = names(l[i])
    }
  }

使用 lapply 我尝试了类似的东西:

lmod <- lapply(l, function(x) {
  x[[1]] <- names(x)
  x[[2]] <- names(x)
  return(x)
})

但它根本没有用。

有人知道这个吗?

你赤身裸体
Map(lapply, l, list(cbind), nm=names(l))

这也可以写成:

Map(\(x, y)lapply(x, cbind, nm = y),l, names(l))


all.equal(lmod,  Map(lapply, l, list(cbind), nm=names(l)))
[1] TRUE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R:如何将嵌套列表“嵌套”到data.frame中?

如何将 col 名称作为第一行绑定到列表中的每个 data.frame

如何最好地将嵌套列表展平到R中的data.frame?

如何遍歷 R 中的嵌套列表並將值分配給 data.frame

如何在R中创建具有匹配的行和列的data.frame列表

如何在data.frame列表中命名data.frame中的列作为数据框的名称

R 从 Data.Frame 创建嵌套列表

如何在嵌套列表中获取data.frame的堆栈图?

如何在从R中现有列中提取名称的data.frame中添加列?

如何在R中查看as.data.frame的头部?

如何在R中填写data.frame的缺失值?

如何在R中遍历data.frame

R中具有data.frame的多个级别的嵌套列表

R中data.frame的嵌套采样

R将列添加到data.frame中,即data.frames列表中

提取data.frame列表的名称以及R中data.frame中的值

根据R中的名称从data.frame列表中删除data.frame

如何在R中具有相同长度的向量的列表中更改data.frame的列名?

R中data.frame(列表)的列平均值

如何从具有不同数量的变量的嵌套列表中创建data.frame

如何以不同顺序将嵌套列表中的data.frame对象集分组?

如何在R中的data.frame中添加特定的字符串

在R中的data.frame列表中使用一个data.frame的指定列

将列表中的data.frames堆叠到单个data.frame中,并保留名称(列表)作为额外的列

如何通过名称调用R函数中的data.frame

如何将向量列表并行添加到data.frame对象列表中作为新插槽?

如何在r中的data.frame元素上进行操作,从而创建新列?

如何在 R 中 data.frame 的整个列的函数之间使用?

如何在R中的面板data.frame中标识包含非时间相关变量的列?