我有多个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=";")
但是我没有得到我想要的结果。
答案 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])
中所做的列号是任意的,您应该插入自己的列号。
如果您有任何疑问或者这对您不起作用,请告诉我。 `