【发布时间】:2013-02-12 21:55:07
【问题描述】:
我有多个 csv 文件
a.csv
field_a, field_b
111, 121
112, 122
b.csv
field_a, field_c
211, 231
212, 232
c.csv
field_a, field_b, field_c
311, 321, 331
312, 322, 332
我想将它们连接起来
输出.csv
field_a,field_b,field_c
111, 121, NA
112, 122, NA
211, NA, 231
212, NA, 232
311, 321, 331
312, 322, 332
我想用八度音来做这个。
到目前为止我做了什么:
a=csv2cell(a.csv)
A=cell2struct(a(2:end,:),a(1,:),1)
现在我正在寻找类似的东西
合并(A,B,C) 或者 vertcat(A,B,C)
但我没明白,所有字段都在输出中。
R 我这样做了:
filelist<-list.files()
for (i in 1:length(filelist)) {
datas[[i]]<-list(as.data.frame(read.csv(filelist[i])))
merged <- merge(merged,datas[[i]], all=TRUE)}
但是 for 循环非常慢。所以我正在寻找一种将它们一次合并的可能性。
【问题讨论】:
-
低效的 R 代码通常很慢。这不是真正的合并操作。这是一个堆叠操作。
-
是的,我不知道更好的方法。 @Arun 有一个更好的主意。