R 3.0.3:我有40個csv文件的結構相同,我想rbind
到一個文件,所以我可以計算一列的平均值。R 3.0.3 rbind多個csv文件
我搜索:
- 本網站
R in a Nutshell
R_Intro
來源?rbind Help
在RStudio
我無法找到答案。
任何建議/指針?
R 3.0.3:我有40個csv文件的結構相同,我想rbind
到一個文件,所以我可以計算一列的平均值。R 3.0.3 rbind多個csv文件
我搜索:
R in a Nutshell
R_Intro
來源?rbind Help
在RStudio我無法找到答案。
任何建議/指針?
使用從這裏的答案[Importing several files and indexing them]
列表文件以.csv擴展名 - 這是假定你的工作目錄中唯一的.csv文件是你想讀
files <- list.files(pattern = '\\.csv')
讀的那些文件到列表中 - 是否有標題?
tables <- lapply(files, read.csv, header = TRUE)
rbind文件
combined.df <- do.call(rbind , tables)
然後你可以找到意思 - 找到這列是數字
s <- sapply(combined.df, is.numeric)
發現數值變量的均值
colMeans(combined.df[s])
在更多的當代plyr方法:
files <- list.files(...)
data <- adply(files, 1, read.table)
(這是週六下午:未經測試的代碼,但該方法是罰款)
@ user20650 - 謝謝你的回答。如果在'rbind()'之前,我想添加一個唯一標識符(數字如0,1,2等),它可以幫助我區分哪些數據來自文件1,哪些來自文件,那我該如何實現?我目前正在嘗試'loop()',但它有點混亂。 –
@ChetanArvindPatil;在閱讀階段,你可以用'tables < - lapply(文件,函數(x)cbind(read.csv(x,header = TRUE),id = x))''或者帶有' table < - lapply(seq_along(files),function(x)cbind(read.csv(files [x],header = TRUE),id = x))';或者在列表中使用'data.table',如上面的答案:'names(tables)< - files; data.table :: rbindlist(tables,idcol = TRUE)' – user20650