首页 > 解决方案 > 如何修改data.frame列表然后输出data.frame

问题描述

我想在每个 data.frames 列表中创建第二列,它只是第一列的副本,然后输出这些 data.frames:

存储数据帧:

> FileList <- list(DF1, DF2)

向每个数据框添加另一列:

> ModifiedDataFrames <- lapply(1:length(FileList), function (x) {FileList[[x]]$Column2 == FileList[[x]]$Column1})

ModifiedDataFrames[[1]]只返回一个列表,其中包含我认为来自 DF1$Column1 的内容

我在这里想念什么?

标签: rdataframeloopsapplysapply

解决方案


您的代码存在一些问题。首先,您使用等价运算符==进行赋值,其次您没有从函数中返回正确的元素。这是一个可能的解决方案:

df1 <- data.frame(Column1 = c(1:3))  
df2 <- data.frame(Column1 = c(4:6))  
FileList <- list(df1, df2)
ModifiedDataFrames <- lapply(FileList, function(x) {
  x$Column2 <- x$Column1
  return(x)
})

> ModifiedDataFrames
[[1]]
  Column1 Column2
1       1       1
2       2       2
3       3       3

[[2]]
  Column1 Column2
1       4       4
2       5       5


推荐阅读