我有多个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))出错: 名称与以前的名称不匹配
答案 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=",")