前提
R
dplyrパッケージ使用
実現したいこと
複数列に対してNAでないか否かで0,1の変数に変換したい。
変換したい変数
商品購入_1 : numeric型 #1~5000の値をとる
dataframeのイメージ
ID 商品購入_1 商品購入_2 ・・・ 商品購入_50 0001 2380 NA 2400 0002 1280 1980 980 0003 NA 2600 2480 ・ ・ ・ 9999 4980 180 ・・・ NA
変換後のdataframeのイメージ
ID 商品購入_1 商品購入_2 ・・・ 商品購入_50 0001 1 0 1 0002 1 1 1 0003 0 1 1 ・ ・ ・ 9999 1 1 ・・・ 0
一つの列に対してなら、
df %>% mutate(商品購入_1 = if_else(is.na(商品購入_1),0,1))
とすればよいが、
列が商品購入_1 ~ 商品購入_50まである場合に
df %>% mutate(商品購入_1 = if_else(is.na(商品購入_1),0,1), 商品購入_2 = if_else(is.na(商品購入_2),0,1), . . . 商品購入_50 = if_else(is.na(商品購入_50),0,1) )
とする以外の解決策がわからず、
mutate_at(vars(matches("商品購入")),funs(・・・))
みたいな感じでかけるといいなと思ったのだが、funsの中身をどうすればよいかわからず、
調べても解決策がわからなかった。
補足情報
R version 3.6.0
回答3件
あなたの回答
tips
プレビュー