Rとtidyverse 1.3.1でtibble
に条件分岐で列を追加するサンプルコードです。case_when
は%>% case_when(条件式~値, ...)
の形式で条件を満たす値を返します。最後のTRUE~NA_real_
はどの条件にも一致しない要素の値を指定しています。NA_real_
がNA
ではないのはcase_when
は右辺値(「~」の右側)の型統一を求めるためです。
library(tidyverse) #tidyverse 1.3.1 data <- tibble(A=c(1:5, 11:15, 21:25, 100)) #列名が直書きできる場合 data %>% mutate(B=case_when( 1 <= A & A <= 5~1, 11 <= A & A <= 15~2, 21 <= A & A <= 25~3, TRUE~NA_real_)) #列名が直書きできない場合(日本語など) data %>% mutate(B=case_when( 1 <= .$"A" & .$"A" <= 5~1, 11 <= .$"A" & .$"A" <= 15~2, 21 <= .$"A" & .$"A" <= 25~3, TRUE~NA_real_))