R で case ステートメントを作成する方法 (例あり)


case ステートメントは、条件を循環して最初の条件が満たされたときに値を返すステートメントの一種です。

R で case ステートメントを実装する最も簡単な方法は、 dplyrパッケージのcase_when()関数を使用することです。

 library (dplyr)

df %>% 
  mutate(new_column = case_when(
    col1 < 9 ~ ' value1 ',
    col1 < 12 ~ ' value2 ',
    col1 < 15 ~ ' value3 ',
    TRUE ~ ' Great '))

この特定の関数は、 col1という列の値を調べて、次の値を返します。

  • value1 」(col1 の値が 9 未満の場合)
  • value2 」(col1 の値が 12 未満の場合)
  • value3 」(col2 の値が 15 未満の場合)
  • 前の条件がいずれも当てはまらない場合は「 value4

TRUE は「else」ステートメントと同等であることに注意してください。

次の例は、この関数を実際に使用する方法を示しています。

例: R の case ステートメント

R に次のデータ フレームがあるとします。

 #create data frame
df <- data. frame (player=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 points=c(6, 8, 9, 9, 12, 14, 15, 17, 19, 22))

#view data frame
df

   player points
1 1 6
2 2 8
3 3 9
4 4 9
5 5 12
6 6 14
7 7 15
8 8 17
9 9 19
10 10 22

次の構文を使用して、 points列の値によって値が決定されるclassという新しい列を作成する case ステートメントを作成できます。

 library (dplyr)

#create new column using case statement
df %>% 
  mutate(class = case_when(
    points < 9 ~ ' Bad ',
    points < 12 ~ ' OK ',
    points < 15 ~ ' Good ',
    TRUE ~ ' Great '))

   player points class
1 1 6 Bad
2 2 8 Bad
3 3 9 OK
4 4 9 OK
5 5 12 Good
6 6 14 Good
7 7 15 Great
8 8 17 Great
9 9 19 Great
10 10 22 Great

case ステートメントは、ポイント列の値を調べて、次の値を返しました。

  • ポイント列の値が 9 未満の場合は「 Bad
  • ポイント列の値が 12 未満の場合は「 OK
  • ポイント列の値が 15 未満の場合は「良好
  • 前の条件がどれも当てはまらない場合は「素晴らしい

新しい列はclassと呼ばれます。これは、 mutate()関数で指定した名前だからです。

追加リソース

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

Rで複数の条件を指定したIfステートメントを使用する方法
R でネストされた If Else ステートメントを記述する方法
R で最初の tryCatch() 関数を作成する方法

コメントを追加する

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