headerが複数階層のcsvファイルを構造的に読み込む方法
28 views (last 30 days)
Show older comments
Yutaro Ueoka
on 14 Oct 2022
Commented: Yutaro Ueoka
on 14 Oct 2022
csvファイルをtableかmatrixとしてでもなんでも良いのですが、読み込みたいです。
質問1:csvファイルの構造が下記のような場合、どのようにしたら読み込めますでしょうか?
layer1 A A A A
layer2 a a b b
layer3 x y x y
--- --- --- ----
t1 1 2 4 5
t2 2 3 5 6
t3 3 4 6 7
...
readtableだと、headerをlayer1か2か3のどれかしか選ぶことができず情報が潰れてしまいます。
質問2:layer1,2,3をconcatenateして、A_a_xのようにすることも考えたのですが、それもどのように行えばよいか分かりませんでした。そちらに関しても分かる方がいらしたら教えて頂きたいです。
どうぞよろしくお願いいたします。
0 Comments
Accepted Answer
Akira Agata
on 14 Oct 2022
readcell でまずファイル全体を読み込んだ後、変数名に関する部分と数値データの部分を分けて、最後にテーブル型変数として纏めるという方法はいかがでしょうか?以下はその一例です。
% readcell でとりあえず全体を読み込む
C = readcell("sample.csv");
% 変数名に関する部分と数値データ部分に分ける
C1 = C(1:3, 2:end);
C2 = C(4:end, 2:end);
% 変数名を作成する
varName = join(C1', "_");
% 数値データ部分とあわせてテーブル型変数に整理
T = array2table(cell2mat(C2), "VariableNames", varName)
More Answers (0)
See Also
Categories
Find more on スプレッドシート in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!