R で which 関数を使用する方法 (例あり)


R のwhat()関数は、論理ベクトル内のTRUEである要素の位置を返します。

このチュートリアルでは、この関数の実際の使用例をいくつか紹介します。

例 1: ベクトル内の要素を検索する

次のコードは、5 に等しいベクトルのすべての要素の位置を見つける方法を示しています。

 #create data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find the position of all elements equal to 5
which (data == 5)

[1] 8 9

ベクトル内の位置89の要素が値 5 に等しいことがわかります。

5 に等しくないベクトルのすべての要素の位置を見つけることもできます。

 #find the position of all elements not equal to 5
which (data != 5)

[1] 1 2 3 4 5 6 7 10

また、どの要素が 2 つの値の間、または 2 つの値の外側にあるかを見つけることもできます。

 #find the position of all elements with values between 2 and 4
which (data >= 2 & data <= 4)

[1] 2 3 4 5 6 7

#find the position of all elements with values outside of 2 and 4
which (data < 2 | data > 4)

[1] 1 8 9 10

例 2: ベクトル内の出現回数を数える

次のコードは、 length()関数を使用して、特定の値より大きいベクトル内の要素の数を見つける方法を示しています。

 #createdata
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find number of elements greater than 4
length ( which (data > 4))

[1] 3

このベクトルには、4 より大きい値を持つ要素が 3 つあることがわかります。

例 3: データ フレーム内の行を検索する

次のコードは、特定の列の最大値または最小値を含むデータ フレーム内の行を返す方法を示しています。

 #create data frame
df <- data. frame (x = c(1, 2, 2, 3, 4, 5),
                 y = c(7, 7, 8, 9, 9, 9),
                 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

  X Y Z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return row that contains the max value in column x
df[ which . max (df$x), ]

  X Y Z
6 5 9 F

#return row that contains the min value in column x
df[ which . min (df$x), ]

  X Y Z
1 1 7 A

例 4: データ フレーム内の行によるサブセット

次のコードは、データ フレームを特定の基準を満たす行に分割する方法を示しています。

 #create data frame
df <- data. frame (x = c(1, 2, 2, 3, 4, 5),
                 y = c(7, 7, 8, 9, 9, 9),
                 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

  X Y Z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return subset of data frame where values in column y are greater than 8
df[ which (df$y > 8), ]

  X Y Z
4 3 9 D
5 4 9 E
6 5 9 F

このページでその他の R チュートリアルを見つけてください。

コメントを追加する

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