繰り返し測定値を異なる行に入力するだけです。たとえば、次のように
store = repmat(cellstr(num2str((1:3)')), 3, 1);
type = repmat({'pepperoni', 'mushrooms', 'onions'}, 3, 1);
type = Type(:);
score = dataset({randn(9,3), 'taste', 'looks', 'price'});
data = [dataset(store, type) score];
grpstats(data(:,2:end), 'type')
生データ:
>> data
data =
store type taste looks price
'1' 'pepperoni' -0.19224 -0.44463 -0.50782
'2' 'pepperoni' -0.27407 -0.15594 -0.32058
'3' 'pepperoni' 1.5301 0.27607 0.012469
'1' 'mushrooms' -0.24902 -0.26116 -3.0292
'2' 'mushrooms' -1.0642 0.44342 -0.45701
'3' 'mushrooms' 1.6035 0.39189 1.2424
'1' 'onions' 1.2347 -1.2507 -1.0667
'2' 'onions' -0.22963 -0.94796 0.93373
'3' 'onions' -1.5062 -0.74111 0.35032
グループの統計:
>> grpstats(data(:,2:end), 'type')
ans =
type GroupCount mean_taste mean_looks mean_price
pepperoni 'pepperoni' 3 0.35459 -0.10817 -0.27197
mushrooms 'mushrooms' 3 0.09674 0.19138 -0.74791
onions 'onions' 3 -0.16704 -0.97992 0.072449
おかげ - これは明らかに動作します。一般的な解決策としては、いくつかの理由から私には理想的ではないと思われます。グループごとにフィルタリングする/しない場合は、リピートを崩壊することを覚えておく必要があります。多くのグループ。しかし、それは最も安価なソリューションかもしれません。 – Edward
@エドワード私は、最初はテーブルにまったく新しい行を置くのはちょっと面倒だと思うのですが、実際のデータベースでは既存の観測にタグを追加するだけです。しかし、これはほとんどの統計プログラムでデータを構造化する標準的な方法です。それについての1つの良い点は、データの複雑な論理的なサブセッティングを行うことが自明であることです。例えば、 'store'と' type'のユニークな組み合わせごとにヒストグラムの行列を作りたいとしたらどうでしょうか?この組織では、それを簡単に行うことができます。 –