replace_na_if
動詞の不一致で、すべての文字/数値/論理/ etc ...列のNAsを同じ値で体系的に置き換えるにはどうすればよいでしょうか?ここで私は今何をしています。Rのreplace_na_ifをハッキングする最善の方法
library(dplyr)
starwars %>% mutate_if(is.numeric, funs(ifelse(is.na(.), 0, .)))
あなたはあまりにもtidyr :: replace_naを使用しますが、あります」:
、BEFORE
starwars %>%
# islolate the columns for the post
select_if(is.numeric) %>%
filter(!complete.cases(.))
# A tibble: 51 x 3
height mass birth_year
<int> <dbl> <dbl>
1 97 32 NA
2 180 NA 64
3 180 110 NA
4 150 NA 48
5 NA NA NA
6 160 68 NA
7 191 90 NA
8 170 NA 91
9 224 82 NA
10 206 NA NA
# ... with 41 more rows
starwars %>%
# isolate the columns for the post
select_if(is.numeric) %>%
filter(!complete.cases(.)) %>%
replace_na(as.list(
setNames(rep(0, sum(map_chr(., class) == "numeric")),
colnames(.)[map_chr(., class) == "numeric"])))
# A tibble: 51 x 3
height mass birth_year
<int> <dbl> <dbl>
1 97 32 0
2 180 0 64
3 180 110 0
4 150 0 48
5 NA 0 0
6 160 68 0
7 191 90 0
8 170 0 91
9 224 82 0
10 206 0 0
# ... with 41 more rows
いや、良い点と同じくらい簡単です。 'mutate_if'アイデアをオプションとして投稿することを意図していました。 btw、あなたは 'purrr'をチェックアウトする必要があります!また、全体の操作のためにパイプに留まることを好むでしょう。 – ericgtaylor
'mutate_if(is.numeric、funs(replace(。、is.na(。)、0)))'も動作します。私はこの解決策またはあなたが十分に "整頓"していると思います。 – ericgtaylor