如何使用R在第一个csv文件的第1列下添加第二个csv文件的第1列

时间:2015-04-15 18:34:01

标签: r csv export-to-csv

我有多个csv文件。我想将所有csv文件中所有列的内容放在一列中。我也想要不要包含特定的行数。

实施例 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,names(xi))出错:        名称与以前的名称不匹配

3 个答案:

答案 0 :(得分:3)

您可以在创建Reduce后使用myfiles来解决此问题

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

它将myfiles列表并将其所有元素组合在一起,为您留下一个数据框以传递到write.table

答案 1 :(得分:3)

数据框可以附加&#34; row-bind&#34;语法如rbind(df1,df2,df3,...)

如果您有数据框列表,可以使用do.call绑定它们:

do.call(rbind,myfiles)

答案 2 :(得分: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=",")