アンケートの回答を含むマトリックスがあり、たとえば、Scantron シートにジグザグ パターンを記入したばかりの回答者を除外するために、いくつかの基本的なパターン チェックを実行したいと考えています。次のような 1400 行 50 列 (個人ごとのアイテム) のマトリックスdatonly
があります。
> head(datonly[,1:10])
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 2 4 4 3 4 4 4 4 4
[2,] 1 1 4 NA 5 5 4 4 4 4
[3,] 2 2 2 3 3 3 3 3 3 1
[4,] 3 1 3 2 5 2 3 4 3 4
[5,] 4 2 3 1 5 3 5 5 3 4
[6,] 4 2 4 4 5 1 5 4 4 5
ご覧のとおり、そこにはNA
s があります。また、有効な回答は、すべての質問に対して 1 ~ 5 です。
これを行う最も効率的な方法はわかりませんが、このマトリックスは大きくないため、効率は大したことではありません-私はただそれをやり遂げたいだけで、これに長居したくないのですが、わかりません各行内で、パターン 1 2 3 4 5 4 3 2 1 が見つかったかどうかを確認するための作業方法。関数の出力を次のようにしたい:
> which(ind==1)
[1] 24 55 66 67 74 79 83 90 127 131 147
[12] 154 162 172 221 222 248 260 263 316 339 390
[23] 402 408 436 440 456 457 460 492 497 504 526
[34] 544 550 568 583 597 602 623 628 632 639 682
[45] 684 689 705 727 747 750 751 763 764 769 784
ここで、ind
は、このパターンを表示しない行 (人) ごとに 0 を含み、表示する行 (人) ごとに 1 を含む数値ベクトルです。この例では、回答者 #24、55、66 などを悪い回答者としてマークします。順序は重要です-そうでなければ、Scantronシートでジグザグのように見えません-しかし、パターンは必ずしも1から始まる必要はありません(ただし、指定された1つのパターンのみをチェックする関数で問題ありません)その上)。どんな助けでも大歓迎です!