1

個々の被験者 (列 1) によって回答された質問の数 (列 2) を表す 312x2 マトリックスがあります。

x =

    40    56
    41    56
    42   176
    43   176
    44   116
    45    56
    46    56
    47   116
    48    56
    49    56
    50   116

一部の参加者はアンケートに複数回回答しました。そのデータを追加の列に分割したいと思います。

つまり、参加者 43 は 3 回完了しました。1 回は 56 問、2 回は 60 問です。

したがって、データを 3 つの列に分割して、次のようにしたいと思います。

x = 
    40    56
    41    56
    42    56    60    60
    43    56    60    60
    44    56    60
    ...etc

次に、アンケートごとに回答された質問の平均を計算できるように、ギャップを NaN で埋めます。

4

4 に答える 4

0

以下は、必要なものを達成します。

B = unique(A(:,1));
m = max(hist(A(:,1),B));
B = [B, nan(numel(B),m)];
for ii=1:size(B,1)
    jj = (A==B(ii,1));
    B(ii,2:end) = [A(jj(:,1),2)', nan(1,m-sum(sum(jj(:,1))))];
end

入力の場合:

A =

    53    83
    84    76
    52    99
    53    83
    76    90
    54    73
    91    72
    91    92
    86    54
    57    56

結果は次のようになります。

B =

    52    99   NaN
    53    83    83
    54    73   NaN
    57    56   NaN
    76    90   NaN
    84    76   NaN
    86    54   NaN
    91    72    92
于 2013-04-17T12:03:21.640 に答える