读取csv文件并执行功能,然后绑定在一起

时间:2015-01-08 18:06:22

标签: r function csv rbind

我有多个CSV文件,我知道如何阅读它们并对它们进行调整。但我的问题是,在绑定它们之前,我想执行一些操作,然后再绑定它们。

因此对于一个文件我会这样做:

a<-read.table(file="F:..... .csv", skip=1401, nrow=2,header=FALSE, sep=";")
head(a)
##display only some columns
G<-a[,c(11:13)]
H<-a[, c(14:16)]
names(G)<-names(H)
H_G<-as.data.frame(rbind(G, H))
##transpose to long format
H_G<-t(H_G)

现在我想从所有其他文件中删除。

我用这个

尝试了
filenames <- list.files(path="F:....2",pattern="*.csv")
readlist <- lapply(filenames, read.table, skip=1401, nrow=2,header=FALSE, sep=";")

但是我没有得到我想要的结果。

1 个答案:

答案 0 :(得分:0)

此代码将执行您想要的操作

这里我初始化一些测试矩阵:

a<-matrix(1:100,10)
b<-matrix(901:1000,10)
write.csv(file="test.csv",a)
write.csv(file="test2.csv",b)

在这里我执行你的循环:

filenames <- dir(pattern="*.csv")
for (i in c(1:length(filenames))){  
  print(filenames[i])
  assign(filenames[i],read.csv(filenames[i], header=FALSE))
  assign(filenames[i], get(filenames[i])[,8:10])
  if(i==1){output<-data.frame(matrix(vector(),10,0))}
  results<-rbind(output,get(filenames[i]))
  if(i==length(filenames)){output<-t(results)}
}

注意:我在此行assign(filenames[i], get(filenames[i])[,8:10])中所做的列号是任意的,您应该插入自己的列号。

如果您有任何疑问或者这对您不起作用,请告诉我。 `