各参加者のグループIDを含む列が1つあります。3つのグループがあるため、この列のすべての数値は1、2、または3です。
次に、各参加者の応答スコアを含む2番目の列があります。各グループ内の平均/中央値応答スコアを計算したいと思います。
私はすべての行をループすることでこれを行うことができましたが、これは遅くて最適ではないソリューションだと感じています。誰かが物事を行うためのより良い方法を提案してもらえますか?
各参加者のグループIDを含む列が1つあります。3つのグループがあるため、この列のすべての数値は1、2、または3です。
次に、各参加者の応答スコアを含む2番目の列があります。各グループ内の平均/中央値応答スコアを計算したいと思います。
私はすべての行をループすることでこれを行うことができましたが、これは遅くて最適ではないソリューションだと感じています。誰かが物事を行うためのより良い方法を提案してもらえますか?
grpstats
使用するのに適した機能です(ドキュメントはこちら)
これは埋め込み統計のリストです。
また、関数ハンドルも受け入れます (例: @mean
、@skeweness
)
>> groups = [1 1 1 2 2 2 3 3 3]';
>> data = [0 0 1 0 1 1 1 1 1]';
>> grpstats(data, groups, {'mean'})
ans =
0.3333
0.6667
1.0000
>> [mea, med] = grpstats(data, groups, {'mean', @median})
mea =
0.3333
0.6667
1.0000
med =
0
1
1
論理条件を使用します。たとえば、データがm
次のようにマトリックス内にあるとします。最初の列はID
2番目の列は応答スコア、
mean(m(m(:,1)==1,2))
median(m(m(:,1)==1,2))
1
応答スコアなどの平均と中央値が表示されます