-3

私は実験用のデータセットに取り組んでおり、参加者の側で誤ったアクションを引き起こした試行の数を調べようとしています。私のテーブル(以下を参照)の最後に、prefix、corrfix、およびerrfixの3つの列を追加しました(0はエラーを示し、数値は正しいアクションを示します)。まず、参加者1人あたりの試行回数によって、プレフィックス列のアクションが正しくないことを確認します(つまり、その試行の数値がなく、正しいアクションを実行しなかったことを示します)。

   RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
1                     1091                 1         86      0       0      0
2                     1091                 2         86      0       0      0
3                     1091                 3         86   1229       0      0
4                     1091                 4         86      0       0      0
5                     1091                 5         86      0       0      0
6                     1091                 1        110      0       0      0
7                     1091                 2        110    764       0      0
8                     1092                 3         22    202       0    202
9                     1092                 4         22    120       0      0
10                    1092                 5         22      0       0      0
11                    1092                 6         22      0       0      0
12                    1092                 7         22      0       0      0
13                    1092                 8         22      0       0      0
14                    1092                 9         22    510       0      0
15                    1092                10         22    330       0      0
16                    1092                11         22      0       0     57

私はコードに取り組んでいますが、数値がないトライアルのみが必要な場合(各参加者はラインごとに異なるトライアルを行う必要があります)、(同じトライアルの)複数の行が返されます。助けや提案をいただければ幸いです。Rスキルを磨くために一生懸命頑張っています。

  flag=0
  flag=1
  if(new[i,]$CURRENT_FIX_INDEX==1){
  flag=1
  }
  if (flag==1) {
  if(new[i,]$prefix==0){
  cbind(new$RECORDING_SESSION_LABEL, new$identifier)}
4

1 に答える 1

1

あなたが何を求めているのか、まだ正確にはわかりません。RECORDING_SESSION_LABEL と識別子をグループ化して見たいようです。したがって、上記のデータ フレームには、1091 とラベルと 86 識別子の 5 つの観測値と、1091 ラベルと 110 識別子の 2 つの観測値があります。1091 と 86 の 5 つの観測値を合計し、次に 1091 と 110 を合計します。合計が 0 より大きくない場合は、フラグを立てて、この LABEL と識別子を返します。これは正しいですか、それともすべての 1091 ラベルを全体として見て、0 以外の値があるかどうかを確認しますか?

以下のコードは、これら 3 つのグループを調べます (これは正しいですか?)。

$`1092.22`
   RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
8                     1092                 3         22    202       0    202
9                     1092                 4         22    120       0      0
10                    1092                 5         22      0       0      0
11                    1092                 6         22      0       0      0
12                    1092                 7         22      0       0      0
13                    1092                 8         22      0       0      0
14                    1092                 9         22    510       0      0
15                    1092                10         22    330       0      0
16                    1092                11         22      0       0     57

$`1091.86`
  RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
1                    1091                 1         86      0       0      0
2                    1091                 2         86      0       0      0
3                    1091                 3         86   1229       0      0
4                    1091                 4         86      0       0      0
5                    1091                 5         86      0       0      0



$`1091.110`
  RECORDING_SESSION_LABEL CURRENT_FIX_INDEX identifier prefix corrfix errfix
6                    1091                 1        110      0       0      0
7                    1091                 2        110    764       0      0

コード:

error.count <- function(column){
    x <- rle(sort(column))
    ifelse(sum(x[[2]])==0, TRUE, FALSE)
}

outcome <- aggregate(prefix~RECORDING_SESSION_LABEL+identifier, dat, error.count)
outcome[outcome$prefix==1, ] #return just those Labels and identifiers with all zeros

この場合、これらの状況に適合するデータがないため、何も返されません。あなたが特定しようとしている状況を生成するために、あなたが提供するデータをさらに改良することをお勧めします。

于 2012-04-23T01:25:46.343 に答える