R で data.table をフィルターする方法 (例あり)


次のメソッドを使用して、R の data.table の行をフィルターできます。

方法 1: 単一の条件に基づいて行をフィルターする

 dt[col1 == ' A ', ]

方法 2: リスト内の値を含む行をフィルターする

 dt[col1 %in% c(' A ', ' C '), ]

方法 3: 複数の条件のいずれかが満たされる行をフィルターする

 dt[col1 == ' A ' | col2 < 10 , ]

方法 4: 複数の条件が満たされる行をフィルターする

 dt[col1 == ' A ' & col2 < 10 , ]

次の例は、R の次の data.table で各メソッドを実際に使用する方法を示しています。

 library (data.table)

#create data table
dt <- data. table (team=c('A', 'A', 'A', 'B', 'C'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#view data table
dt

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24
5: C 95 34 28

例 1: 条件に基づいて行をフィルターする

次のコードは、チーム列の値が「A」に等しい行のみをフィルターする方法を示しています。

 #filter for rows where team is A
dt[team == ' A ', ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24

例 2: リスト内の値を含む行をフィルターする

次のコードは、チーム列の値が「A」または「C」に等しい行のみをフィルターする方法を示しています。

 #filter for rows where team is A or C
dt[team %in% c(' A ', ' C '), ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: C 95 34 28

関連: R で %in% 演算子を使用する方法 (例付き)

例 3: いくつかの条件のいずれかが満たされる行をフィルターする

次のコードは、チーム列の値が「A」に等しい行、またはポイント列の値が 90 未満である行のみをフィルターする方法を示しています。

 #filter for rows where team is A or points < 90
dt[team == ' A ' | points < 90 , ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24

: |演算子はRの「OR」を意味します。

例 4: 複数の条件が満たされる行をフィルターする

次のコードは、チーム列の値が「A」に等しくポイント列の値が 90 未満である行のみをフィルターする方法を示しています。

 #filter for rows where team is A and points < 90
dt[team == ' A ' & points < 90 , ]

   team points assists rebounds
1: A 86 31 24

: &演算子は R の「AND」を意味します。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

R でベクトルをフィルターする方法
Rでゼロを含む行を削除する方法
Rのデータフレームから空白行を削除する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です