2015-04-15 34 views
0

在第一個csv文件的列1下添加第二個csv文件的第一列我有多個csv文件。我想將所有csv文件中所有列的內容放在一列中。我也想不希望包含在這個特定的行數。如何使用R

例 file1.csv

  Column1 Column2 
      A  1 
      B  2 
      C  3 
      D  4 
      E  5 

file2.csv

  Column1 Column2 
      F   6 
      G   7 
      H   8 
      I   9 
      J   10 

結果 Result.csv

 Column1 Column2 
      C   3 
      D   4 
      E   5 
      H   8 
      I   9 
      J   10 

我的代碼:

temp = list.files(pattern="*.csv") 
    myfiles = lapply(temp, read.delim,nrow=4292,skip=1472,sep=",") 
    nana<-do.call(rbind,myfiles) 
    write.table(nana,"result_polmeans.csv",sep=",") 

此代碼每個csv文件產生2列。該錯誤do.call功能莖match.names 錯誤(clabs,姓名(十一)): 名稱不匹配以前的名字

+1

嘗試,'do.call(rbind,myfiles的)' – Frank

+1

謝謝。得到它了 – Samarth

回答

3

您可以使用Reduce創建myfiles後解決了這個問題

all.data <- Reduce(function(x,y) rbind(x, y), myfiles) 

這將需要的myfiles列表和rbind它的所有元件一起,讓你與單個數據幀通入write.table

3

數據幀可以與像rbind(df1,df2,df3,...)「行綁定」語法被附加。

如果數據幀的列表,do.call可以用來約束他們:

do.call(rbind,myfiles) 
0
temp = list.files(pattern="*.csv") 
    new.data <- NULL 

    for(i in temp) { 
        in.data <- read.table(i,skip=1472,sep=",") 
        new.data <- rbind(new.data, in.data) 
       } 

    write.table(new.data,"result_polmeans.csv",sep=",")