【R】dplyrの中で変数を使う方法

dplyrの中では普通に変数を使えない。たとえば、mutateしようとすると変数名が新規追加カラムとして扱われ、変数の中の値が展開されない。

対処方法①

mutateの直後に来る値には!!をつけ、その後の=を:=にする。

対処方法②

ifelseの中では①が使えない。変数は展開されるが、文字列として扱われるため、変数名として動作しない。

そこで、文字列を変数に変換するために、eval(parse(text=”変数名”))を使う。

for (loop in 1:5) {
  
  # カラム名定義
  past_KYAKUSHITSU_HANTEI <- paste0("KYAKUSHITSU_HANTEI_", loop)
  col_COUNT <- paste0("count_", loop)
  
  # カウント
  processed_data.table <- processed_data.table %>%
    dplyr::mutate(!!col_COUNT := ifelse(eval(parse(text=past_KYAKUSHITSU_HANTEI )) != 0, 1, 0))
}

コメント