2016-10-16 25 views
1

我迷失了试图获取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 
+0

这是不http://stackoverflow.com/questions/11433432/importing-multiple-csv-files-into-r的副本? – zx8754

+0

类似于:'do.call(rbind,lapply(list.files(),function(i){x < - read.delim(i); complete.cases(x)})'? – zx8754

+0

对这个问题的回答: temp = list.files(pattern =“*。csv”) myfiles = lapply(temp,read.delim) 将332个数据帧导入到一个列表中,这样可以解决我的前半部分问题,但我不明白如何将它们绑定在一起,比如说有一个意思,我只是列出了332个独立的元组。 –

回答

0

即使你想有一个data.frame,data.table提供极快的和愚蠢的防爆功能,处理这一确切的问题:

library(data.table) 

fileList <- list.files(pattern="*.csv") 
listing <- lapply(fileList, fread) 
dt <- rbindlist(listing) # if unequal columns add ,fill = TRUE 
dt <- na.omit(dt) 
df <- as.data.frame(dt) 
相关问题