2017-02-12 7 views
1

私が設定した「病院」のデータを使用して次の行を実行すると、次を得る:MATLAB - カテゴリ変数を行ではなく列として表示しますか?

>> statarray = grpstats(dsa,{'Smoker','Sex'},'mean','DataVars',{'Age','Weight'}) 
statarray = 
       Smoker Sex  GroupCount mean_Age mean_Weight 
    0_Female false  Female 40   37.425  130.32  
    0_Male  false  Male  26   38.808  180.04  
    1_Female true  Female 13   38.615  130.92  
    1_Male  true  Male  21   39.048  181.14  

ではなく、それはこのようなこと持つことができるのは簡単だ場合、私は思っていた:

 Smoker GroupCount mean_Age mean_Weight Male Female 
0 false  66    37.97  149.91  21  40 
1 true  34   38.882  161.94  26  13 

私は、行としてそれらを持つ代わりに、このような統計テーブルのような列にカテゴリ変数をもたらす方法を把握することはできません。おそらくこれはgrpstatsでは不可能です。ちょっと興味があるんだけど。ありがとう!

+0

複製? http://stackoverflow.com/questions/34744544/how-to-transpose-a-matlab-table – yuval

+0

あなたの男性/女性数に間違いがあります(たとえば、40 + 21〜= 66) – EBH

答えて

0

あなたは別のcrosstabsexをカウントし、その後statarrayで一つのテーブルにそれを連結することができます

statarray = grpstats(dataset2table(hospital),{'Smoker'},'mean',... 
    'DataVars',{'Age','Weight'}); 
statarray{:,end+1:end+2} = crosstab(hospital.Smoker,hospital.Sex); 
statarray.Properties.VariableNames(end-1:end) = categories(hospital.Sex); 

は出力:

statarray = 
     Smoker GroupCount mean_Age mean_Weight Female Male 
     ______ __________ ________ ___________ ______ ____ 
    0 false  66    37.97  149.91   40  26 
    1 true  34   38.882  161.94   13  21 

あなたは私がデータセットからstatarrayを変換することがありこれはMatlabのドキュメントのこのメッセージのためです:

データセットのデータ型は、将来のリリースで削除される可能性があります。異種データを処理するには、代わりにMATLAB®テーブルのデータ型を使用します。詳細については、MATLABテーブルのマニュアルを参照してください。

そして実際、tableはもっと優しいです...

関連する問題