MATLAB Answers

0

how to write a script that outerjoins multiple data files

Asked by alpedhuez on 10 Apr 2019
Latest activity Commented on by alpedhuez on 10 Apr 2019
I have files "File1.csv", "File2.csv",.... and "File33.csv". Each of 33 files has a key variable 'date'. I would need to outerjoin these 33 files using 'date' as the key variable. I understand it is a generalization of
B=outerjoin(File1,File2,'Keys', 'date', 'MergeKeys', true)
But I need to understand
(1) how to write a loop to read 33 files from C:\Dropbox (say)
(2) how to write a loop to outerjoin 33 files
(3) how to write a script to save the output file into C:\Dropbox
I will appreciate a code sample.
Thank you.

  0 Comments

Sign in to comment.

Tags

Products


Release

R2019a

1 Answer

Answer by Guillaume
on 10 Apr 2019
 Accepted Answer

Something like (untested, expect typos):
folder = 'C:\dropbox';
filelist = dir(fullfile(folder, 'File*.csv'));
for fileidx = 1:numel(filelist)
filecontent = readtable(fullfile(folder, filelist(fileidx).Name));
if fileidx == 1
joined = filecontent;
else
joined = outerjoin(joined, filecontent, 'Keys', 'Date', 'MergeKeys', true)
end
end
writetable(joined, fullfile(folder, 'joined.csv'));

  3 Comments

reference to non-existent field 'Name'.
Error in Untitled (line 4)
filecontent = readtable(fullfile(folder, filelist(fileidx).Name));
Well, I did warn that typos were likely. You're allowed to try to figure out what the code does and fix the typos yourself.
Replace Name by name.

Sign in to comment.