Kurz von einem replace_na_if
Verb, was ist der beste Weg, um systematisch NAs in allen Zeichen/numerischen/logischen/etc ... Spalten mit dem gleichen Wert zu ersetzen? Hier ist was ich jetzt mache.beste Art zu hacken replace_na_if in R
VOR
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
NACH
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
ja, guter Punkt. sollte die mutate_if-Idee als Option veröffentlichen. Übrigens solltest du 'purrr' ausprobieren! würde auch lieber für die ganze Operation in der Leitung bleiben. – ericgtaylor
'mutate_if (is.numeric, funs (replace (., Is.na (.), 0))) 'funktioniert auch. Ich denke, dass diese Lösung oder Ihr "ausreichend" sauber sind. – ericgtaylor