读取R中多个文件的特定列

时间:2016-02-07 04:02:01

标签: r csv

我使用以下代码读取R:

中的多个.csv文件
    Assembly<-t(read.table("E:\\test\\exp1.csv",sep="|",header=FALSE,col.names=c("a","b","c","d","Assembly","f"))[1:4416,"Assembly",drop=FALSE])
    Top1<-t(read.table("E:\\test\\exp2.csv",sep="|",header=FALSE,col.names=c("a","b","c","d","Top1","f"))[1:4416,"Top1",drop=FALSE])
    Top3<-t(read.table("E:\\test\\exp3.csv",sep="|",header=FALSE,col.names=c("a","b","c","d","Top3","f"))[1:4416,"Top3",drop=FALSE])
    Top11<-t(read.table("E:\\test\\exp4.csv",sep="|",header=FALSE,col.names=c("a","b","c","d","Top11","f"))[1:4416,"Top11",drop=FALSE])
    Assembly1<-t(read.table("E:\\test\\exp5.csv",sep="|",header=FALSE,col.names=c("a","b","c","d","Assembly1","f"))[1:4416,"Assembly1",drop=FALSE])
    Area<-t(read.table("E:\\test\\exp6.csv",sep="|",header=FALSE,col.names=c("a","b","c","d","Area","f"))[1:4416,"Area",drop=FALSE])

    data<-rbind(Assembly,Top1,Top3,Top11,Assembly1,Area)

所以整个数据都在文件夹&#34; test&#34;在E盘。在R中是否有一种更简单的方法可以使用几行代码或某种函数调用来读取多个.csv数据,以替换上面所做的内容?

1 个答案:

答案 0 :(得分:0)

(未经测试的代码;没有可用的工作示例)尝试:使用list.files函数生成正确的名称,然后使用colClasses作为read.csv的参数,以丢弃前4列(并且从那时起矢量被回收你将扔掉第6列):

lapply(list.files("E:\\test\\", patt="^exp[1-6]"), read.csv, 
                       colClasses=c(rep("NULL", 4), "numeric"), nrows= 4416)

如果您希望将其作为数据框返回,请将data.frame包裹在其周围。