【发布时间】:2017-02-25 18:39:08
【问题描述】:
我在尝试获取一个包含 csv 文件的文件夹并将它们合并到一个数据框中时迷失了方向。这些文件夹在一个文件夹(当前是我的工作目录)中编号为 1 到 332.csv。
我想要完成的是一个数据框,我可以提取一列完整案例的平均值和完整案例的计数。
这是我的代码当前所在的位置
# List a set of the files
fileList = list.files(pattern="*.csv")
# Make data frame for each file
df = c(rep(data.frame(), length(fileList)))
# Read csv files into data frames
for (i in 1:length(fileList)) { df[[i]] <- as.list(read.csv(fileList[i])) }
#merge data frames into a single data frame
fullFrame <- rbind(df[[i]])
#isolate to just complete cases
completeFrame <- complete.cases(fullFrame)
fullFrame[completeFrame]
我的期望是对所有案例有一个大表状的视图,但不存在任何案例。
而是输出
> fullFrame[completeFrame]
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
[[5]]
NULL
[[6]]
NULL
[[7]]
NULL
[[8]]
NULL
[[9]]
NULL
[[10]]
NULL
[[11]]
NULL
[[12]]
NULL
[[13]]
NULL
[[14]]
NULL
[[15]]
NULL
[[16]]
NULL
【问题讨论】:
-
类似:
do.call(rbind, lapply(list.files(), function(i){ x <- read.delim(i); complete.cases(x) })? -
该问题的答案: temp = list.files(pattern="*.csv") myfiles = lapply(temp, read.delim) 将 332 个数据帧导入到一个列表中,这样就解决了我的问题的前半部分很好,但我不明白如何将它们重新绑定在一起,比如说,得到一个平均值。我只有一个包含 332 个独立元组的列表。