R でデータ フレームをサブセット化する方法 (4 つの例)


次の基本構文を使用して、R でデータ フレームをサブセット化できます。

 df[rows, columns]

次の例は、次のデータ フレームでこの構文を実際に使用する方法を示しています。

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 C 97 14

例 1: 列を選択してデータ フレームをサブセットする

次のコードは、列名によってデータ フレームをサブセット化する方法を示しています。

 #select all rows for columns 'team' and 'assists'
df[, c(' team ', ' assists ')]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

列インデックス値によってデータ フレームをサブセット化することもできます。

 #select all rows for columns 1 and 3
df[, c(1, 3)]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

例 2: 列を除くサブセット データ フレーム

次のコードは、特定の列名を除外してデータ フレームをサブセット化する方法を示しています。

 #define columns to exclude
cols <- names(df) %in% c(' points ')

#exclude points column
df[!cols]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

インデックス値を使用して列を除外することもできます

 #exclude column 2
df[, c(-2)]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

例 3: 行を選択してデータ フレームをサブセットする

次のコードは、特定の行によってデータ フレームをサブセット化する方法を示しています。

 #select rows 1, 5, and 7
df[c(1, 5, 7), ]

  team points assists
1 A 77 19
5 C 99 32
7 C 97 14

行範囲を選択してデータ フレームをサブセット化することもできます。

 #select rows 1 through 5
df[1:5, ]

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32

例 4: 条件に基づいてデータ フレームをサブセットする

次のコードは、 subset()関数を使用して、特定の条件を満たす行と列を選択する方法を示しています。

 #select rows where points is greater than 90
subset(df, points > 90)

  team points assists
5 C 99 32
6 C 92 39
7 C 97 14

|を使用することもできます。演算子 (「または」) を使用して、次の条件のいずれかを満たす行を選択します。

 #select rows where points is greater than 90 or less than 80
subset(df, points > 90 | points < 80)

  team points assists
1 A 77 19
5 C 99 32
6 C 92 39
7 C 97 14

& (「and」) 演算子を使用して、複数の条件を満たす行を選択することもできます。

 #select rows where points is greater than 90 and assists is greater than 30
subset(df, points > 90 & assists > 30)

  team points assists
5 C 99 32
6 C 92 39

select 引数を使用して、条件に基づいて特定の列のみを選択することもできます。

 #select rows where points is greater than 90 and only show 'team' column
subset(df, points > 90, select=c(' team '))

  team
5C
6C
7C

追加リソース

条件に基づいてRのデータフレームから行を削除する方法
Rでデータフレーム内の値を置き換える方法
Rでデータフレームから列を削除する方法

コメントを追加する

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