如何修改 data.frame 的列表,然后输出 data.frame
How to modify a list of data.frame and then output the 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]]
只是 returns 一个列表,其中包含我认为是来自 DF1$Column1
的内容
我在这里错过了什么?
您的代码存在一些问题。首先,您使用等价运算符 ==
进行赋值,其次您没有从函数返回正确的元素。这是一个可能的解决方案:
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
我想在每个 data.frames 列表中创建第二列,它只是第一列的副本,然后输出那些 data.frames:
存储数据帧:
> FileList <- list(DF1, DF2)
向每个数据框添加另一列:
> ModifiedDataFrames <- lapply(1:length(FileList), function (x) {FileList[[x]]$Column2 == FileList[[x]]$Column1})
但 ModifiedDataFrames[[1]]
只是 returns 一个列表,其中包含我认为是来自 DF1$Column1
我在这里错过了什么?
您的代码存在一些问题。首先,您使用等价运算符 ==
进行赋值,其次您没有从函数返回正确的元素。这是一个可能的解决方案:
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