headerが複数階​層のcsvファイルを​構造的に読み込む方法

17 vues (au cours des 30 derniers jours)
Yutaro Ueoka
Yutaro Ueoka le 14 Oct 2022
Commenté : Yutaro Ueoka le 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のようにすることも考えたのですが、それもどのように行えばよいか分かりませんでした。そちらに関しても分かる方がいらしたら教えて頂きたいです。
どうぞよろしくお願いいたします。

Réponse acceptée

Akira Agata
Akira Agata le 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)
T = 3×4 table
A_a_x A_a_y A_b_x A_b_y _____ _____ _____ _____ 1 2 4 5 2 3 5 6 3 4 6 7
  1 commentaire
Yutaro Ueoka
Yutaro Ueoka le 14 Oct 2022
ありがとうございます!
readcellを知らなかったのですが、教えて頂いた通りでやりたいことができました!!迅速にご回答頂けて大変助かりました。ありがとうございます。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur データのインポートと解析 dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!