私はこれをRでスクリプト化する方法を考えようとしてきましたが、それを取得できません。私はこのようなデータセットを持っています:
Trial Type Correct Latency
1 55 0 0
3 30 1 766
4 10 1 344
6 40 1 716
7 10 1 326
9 30 1 550
10 10 1 350
11 64 0 0
13 30 1 683
14 10 1 270
16 30 1 666
17 10 1 297
19 40 1 616
20 10 1 315
21 64 0 0
23 40 1 850
24 10 1 322
26 30 1 566
27 20 0 766
28 40 1 500
29 20 1 230
これははるかに長くなります(約1000行)。
この1つのデータセットから、テーブルをエクスポートしたり、独自の計算を実行したりできる4つの個別のdata.frames / tablesを作成したいと思います。
これらの箇条書きごとに1つずつ、data.frame(合計4つ)が必要です。
関連する行のすべての列をこれらの新しいテーブルに配置したいのですが、行タイプ10または20の列情報のみが含まれています。
たとえば、最初のテーブル(タイプ10の前にタイプ30)は、サンプルデータに基づいて次のようになります。
Trial Type Correct Latency
4 10 1 344
10 10 1 350
14 10 1 270
17 10 1 297
2番目のテーブル(タイプ10の前にタイプ40):
Trial Type Correct Latency
7 10 1 326
20 10 1 315
24 10 1 322
3番目のテーブル(タイプ20の前にタイプ30):
Trial Type Correct Latency
27 20 0 766
4番目のテーブル(タイプ40が前に付いたテーブル20):
Trial Type Correct Latency
29 20 1 230
タイプ10行のみのテーブルとタイプ20行のテーブルを取得するためにサブセット化することはできますが、前のタイプ値に基づいてタイプ10行と20行に異なるテーブルを作成する方法がわかりません。また、問題は「トライアル」が順番になっていないことです(番号をスキップします)。
どんな助けでも大歓迎です。ありがとうございました。
また、前の行も含める方法があるため、4番目のテーブルの出力は次のようになります。
4番目のテーブル(タイプ40が前に付いたテーブル20):
Trial Type Correct Latency
28 40 1 500
29 20 1 230
4番目の例では、fromとwhich()
組み合わせて使用して、基準を満たすインデックスを取得できます。次に、これらを使用してをサブセット化できます。lag()
dplyr
data.frame
# Get indices of rows that meet condition
ind2 <- which(df$Type==20 & dplyr::lag(df$Type)==40)
# Get indices of rows before the ones that meet condition
ind1 <- which(df$Type==20 & dplyr::lag(df$Type)==40)-1
# Subset data
> df[c(ind1,ind2)]
Trial Type Correct Latency
1: 28 40 1 500
2: 29 20 1 230
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加