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))
}
コメント