(同じ列の)前の行の値に基づいて特定の行を選択します

pdhami

私はこれを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つ)が必要です。

  • タイプ30の行が前にあるタイプ10の行
  • タイプ40の行が前にあるタイプ10の行
  • タイプ30行が前にあるタイプ20行
  • タイプ40行が前にあるタイプ20行

関連する行のすべての列をこれらの新しいテーブルに配置したいのですが、行タイプ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番目の例では、fromwhich()組み合わせて使用して、基準を満たすインデックスを取得できます。次に、これらを使用してをサブセット化できますlag()dplyrdata.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]

編集
0

コメントを追加

0

関連記事

分類Dev

特定の列の値に基づいて行を選択します

分類Dev

特定の列の値に基づいて行を選択する

分類Dev

行の値に基づいて列を選択します

分類Dev

行の値に基づいて列を選択します

分類Dev

列の値に基づいて行を選択します

分類Dev

パンダ-他の列の値に基づいて、特定の列から行の値を選択します

分類Dev

Sparkの前の行の同じ列の値に基づいて値を計算します

分類Dev

列の値とその前の2行に基づいて行を選択します

分類Dev

前の行の同じ列の値に基づいて値を計算します

分類Dev

同じ行の値に基づいて行を更新します

分類Dev

列の値に基づいてすべての行を選択しますpandas

分類Dev

3列に基づいて同じIDを使用して複数行のデータを選択します

分類Dev

GROUPBY列に基づいて列として行の値を選択します

分類Dev

別の列の前の行と同じ列の現在の行の値に基づいて、awkを使用して新しい列を生成します

分類Dev

group_by行とその列値に基づいて行を選択します

分類Dev

特定のキーに基づいて行を選択します

分類Dev

異なる列値に基づいて行を選択します(同じ行)

分類Dev

行の名前に基づいて列を選択します(パンダ)

分類Dev

MySQL-同じuser_idを持つ他の行の列値に基づいてuser_idで行を選択します

分類Dev

特定の資料に基づいて、同じ列から2行目、4行目などをすべて選択します

分類Dev

行を選択し、列の値に基づいて重複を削除します

分類Dev

列の重複に基づいて行を選択します

分類Dev

別の列の現在の行と同じ列の前の行に基づいて列の値をインクリメントします

分類Dev

列pythonの最大値に基づいて行を選択します

分類Dev

SQLServer列の最大値に基づいて行を選択します

分類Dev

mysqlは多くの列値に基づいて行を選択します

分類Dev

同じ列値に基づいてcsvの行をマージします

分類Dev

特定の列の値に基づいて行を削除します

分類Dev

mysqlの別の行の値に基づいて値を選択します

Related 関連記事

  1. 1

    特定の列の値に基づいて行を選択します

  2. 2

    特定の列の値に基づいて行を選択する

  3. 3

    行の値に基づいて列を選択します

  4. 4

    行の値に基づいて列を選択します

  5. 5

    列の値に基づいて行を選択します

  6. 6

    パンダ-他の列の値に基づいて、特定の列から行の値を選択します

  7. 7

    Sparkの前の行の同じ列の値に基づいて値を計算します

  8. 8

    列の値とその前の2行に基づいて行を選択します

  9. 9

    前の行の同じ列の値に基づいて値を計算します

  10. 10

    同じ行の値に基づいて行を更新します

  11. 11

    列の値に基づいてすべての行を選択しますpandas

  12. 12

    3列に基づいて同じIDを使用して複数行のデータを選択します

  13. 13

    GROUPBY列に基づいて列として行の値を選択します

  14. 14

    別の列の前の行と同じ列の現在の行の値に基づいて、awkを使用して新しい列を生成します

  15. 15

    group_by行とその列値に基づいて行を選択します

  16. 16

    特定のキーに基づいて行を選択します

  17. 17

    異なる列値に基づいて行を選択します(同じ行)

  18. 18

    行の名前に基づいて列を選択します(パンダ)

  19. 19

    MySQL-同じuser_idを持つ他の行の列値に基づいてuser_idで行を選択します

  20. 20

    特定の資料に基づいて、同じ列から2行目、4行目などをすべて選択します

  21. 21

    行を選択し、列の値に基づいて重複を削除します

  22. 22

    列の重複に基づいて行を選択します

  23. 23

    別の列の現在の行と同じ列の前の行に基づいて列の値をインクリメントします

  24. 24

    列pythonの最大値に基づいて行を選択します

  25. 25

    SQLServer列の最大値に基づいて行を選択します

  26. 26

    mysqlは多くの列値に基づいて行を選択します

  27. 27

    同じ列値に基づいてcsvの行をマージします

  28. 28

    特定の列の値に基づいて行を削除します

  29. 29

    mysqlの別の行の値に基づいて値を選択します

ホットタグ

アーカイブ