我使用以下for循环来读取7个csv文件并将它们添加到列表中。
list <- list()
l <- 1
for(i in 1:7){
data <- read.csv(paste("file",i,".csv",sep=""),header=FALSE)
list[[l]] <- data
l <- l + 1
}
所以现在我有一个名为&#34; list&#34;的列表包含7个数据帧,对吗?
8个数据帧中的每一个都包含相同的三列(NAME,SURNAME,AGE)。 我现在想补充一下:
df <- dataframe(NAME,SURNAME,AGE) ## to each dataframe in the list.
有没有帮助?我的问题是,如何自动为列表中的所有7个对象实现这一目标!
答案 0 :(得分:1)
如果&#39; lst&#39;有七个data.frames,想要&#39; rbind&#39;对于列表中每个数据集的第8个数据集,我们可以使用Map
Map(rbind, lst, list(d1))
或使用lapply
lapply(lst, rbind, d1)
如果&#39; lst&#39;长度为8,并希望使用第8个元素中的数据集对前7个元素进行rbind,然后就可以了
Map(rbind, lst[-8], lst[8])
set.seed(24)
lst <- lapply(1:7, function(i) as.data.frame(matrix(sample(0:10, 3*10,
replace=TRUE), ncol=3)))
set.seed(49)
d1 <- as.data.frame(matrix(sample(1:20, 3*10, replace=TRUE), ncol=3))
答案 1 :(得分:0)
或者,如果最终目标是确保所有8个CSV文件都成为一个data.frame:
SELECT `Date`,
SUM(Morning) AS Morning,
SUM(EveningQty) AS EveningQty,
SUM(Morning + EveningQty) AS Total
FROM SomeTable
GROUP BY `Date`