一つのCSVファイル​のデータともう一つの​CSVファイルのデー​タを統合したいです.

7 views (last 30 days)
史哉
史哉 on 3 Jun 2022
Commented: 史哉 on 13 Jun 2022
具体的に,FILE Aには実験から得た「ある値のID」と「その量」がそれぞれ1列目と2列目に書かれています.FILE Bには「そのID」と「IDに対応する要素の名称」がそれぞれ1列目と2列目に書かれています.これら2つのファイルから「ID」と「IDに対応する要素の名称」と「その量」を対応させて同じファイルの出力したいです.(検索して一致したものを同じ行に表示?)拙い説明で申し訳ありませんが,よろしくお願い致します.

Answers (1)

Atsushi Ueno
Atsushi Ueno on 4 Jun 2022
Edited: Atsushi Ueno on 6 Jun 2022
Excelのvlookup関数(検索値の合致のみ)と同じ動作はismember関数で実現できます。
テーブルへの列追加は、MATLAB'zさんのTwitterを参考にaddvarsを使いました。
【追加・変更】コメントを受けて、IDを数字から"ID_(数字)”に変更しました。
A = readtable('FILE_A.csv'); head(A,2) % 「ある値のID」と「その量」(先頭2行のみ表示)
ans = 2×2 table
ID measure __________ _______ {'ID_590'} 68.551 {'ID_943'} 895.51
B = readtable('FILE_B.csv'); head(B,2) % 「そのID」と「IDに対応する要素の名称」(先頭2行のみ表示)
ans = 2×2 table
ID element_name __________ ______________ {'ID_100'} {'element100'} {'ID_101'} {'element101'}
[~,idx] = ismember(A.ID,B.ID); %FILE Aの「ID」が、FILE Bの「ID」に存在するか探しインデックスを得る
C = addvars(A,B.element_name(idx),'Before','measure','NewVariableNames','element_name')
C = 19×3 table
ID element_name measure __________ ______________ _______ {'ID_590'} {'element590'} 68.551 {'ID_943'} {'element943'} 895.51 {'ID_871'} {'element871'} 235.86 {'ID_477'} {'element477'} 828.72 {'ID_993'} {'element993'} 469.72 {'ID_954'} {'element954'} 233.81 {'ID_119'} {'element119'} 847.94 {'ID_399'} {'element399'} 196.84 {'ID_837'} {'element837'} 19.156 {'ID_937'} {'element937'} 999.42 {'ID_962'} {'element962'} 702.23 {'ID_322'} {'element322'} 403.85 {'ID_346'} {'element346'} 759.74 {'ID_735'} {'element735'} 890.52 {'ID_580'} {'element580'} 877.07 {'ID_693'} {'element693'} 396.22
writetable(C,'FILE_C.csv');
type FILE_C.csv
ID,element_name,measure ID_590,element590,68.55095701 ID_943,element943,895.5147051 ID_871,element871,235.8594569 ID_477,element477,828.7176194 ID_993,element993,469.7161261 ID_954,element954,233.8060131 ID_119,element119,847.9362492 ID_399,element399,196.8424959 ID_837,element837,19.15642477 ID_937,element937,999.4162537 ID_962,element962,702.2303438 ID_322,element322,403.8534663 ID_346,element346,759.7416727 ID_735,element735,890.5186496 ID_580,element580,877.0735414 ID_693,element693,396.2157681 ID_522,element522,787.6044005 ID_252,element252,0.071197743 ID_468,element468,442.8061596
  5 Comments
史哉
史哉 on 13 Jun 2022
ご丁寧にありがとうございます.参考にさせていただきます.

Sign in to comment.

Tags

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!