table2arrayで条件に合う変数だけを呼び出す方法
15 ビュー (過去 30 日間)
古いコメントを表示
csvfile<-readtable('csvfile.csv')
for n=1:3
VarX=table2array(csvfile((csvfile.name == name{n}), ★★));
end
添付した16行×3列のcsvファイルを読み込み(変数はname, id, profit)、各nameの値(5つの観測値)ごとにid==1(実際はidは1,2,3,4,5まである)を満たすprofitのみを取り出して別のtableにしたいのですが、↑の★★の部分にどのようなコードを書けばよいでしょうか。実際にやりたいものはn=25なのでループの基本形はこのまま維持したいです。
0 件のコメント
採用された回答
Atsushi Ueno
2021 年 6 月 29 日
ループを回さなくてもテーブルの必要部分だけを別のテーブルにする事が出来ます。
name = {'c', 'a', 'b'}; % 仮に用意したけど結局使わなかった...
csvfile = readtable('csvfile.csv')
for n = 1:3
%VarX = table2array(csvfile((csvfile.name == name{n}), ★★));
%実際にやりたいものはn=25なのでループの基本形はこのまま維持したい
%★★は列の選択なので、コロン(全列の意味)が良いのではないかと思います
end
%各name毎にid==1を満たすprofitのみを取り出して別のtableにしたい
VarX = csvfile(csvfile.id == 1, :) % ループ無しで可能、tableにしたいのに何故table2array?
VarX{:, 2:3} % table2array(VarX(:,2:3))と同じ意味。文字列があると配列に変換出来ない為nameを除く
その他の回答 (0 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!