メッセージを書くことによってキーボードの異なるキーを押すために必要な時間間隔を計算したいと思います。行と列で行列を操作し、反復的に行を削除する
データを取得するために、テキストを書き込んだ後に.csvを生成するプログラムを使用します。この.csvには、3つの列があります。最初のキーは押して離したキー、2番目の列はキーが押された(0)か解放された(1)、最後の列に各イベントの時刻が記録されます。
次に、キーがリリースされるまで押されているため、各キーに必要な時間間隔を計算します。私たちは、キー16777248
は時間5.0067901611328125e-06
で押すと時間0.21875882148742676
でリリースされていることを確認することができ、次の余分な簡単な例では
は、それゆえ、このキーの時間間隔は0.21875882148742676-5.0067901611328125e-06
です。 72
のキーの時間間隔は0.1861410140991211-0.08675289154052734
である必要があります。
16777248 0 5.0067901611328125e-06
72 0 0.08675289154052734
72 1 0.1861410140991211
16777248 1 0.21875882148742676
現在のところ、私はRでコードを書いています。まず、.csvでテーブルを読み込みます。次に、2番目の列の最初の1を検索し、対応するキー名を取ります。次に、前のキーを0で検索します。時間間隔を計算し、この値をベクトルに保存して、この2つの行を行列から削除します。その後、これ以上行がなくなるまでこれを繰り返す必要があります。
対応する行が削除されているため、値myTable [x、y]がNAになることがあるという問題があります。各繰り返しで、2つの行が削除されます(押されたキーとそれに対応する解放されたキーを持つ行)。この時点で
私は次のエラーを取得する:
Error in if (myTable[j, 1] == keySearched) { :
missing value where TRUE/FALSE needed
どのように私はこの問題を解決するだろうか?
"対応する行がデペットされました。"これは、あなたが押されて解放されたキーと同じ数のキーを持っていないことを意味しますか?そのような場合は、欠落しているデータの処理方法を決定する必要があります。 –
私はもちろん、押されてリリースされた同じ数のキーを持っています。 –