2016-10-16 41 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) 
相關問題