mam wiele kolumn całkowitą w ramce danych, wszystkie z NAS, który muszę przekodować 0.Recode agencjom krajowym w wielu kolumnach dataframe
df1 <- as.data.frame(sapply(paste(sample(letters,50,T),sample(letters,10), sep=""), function(x) {sample(c(NA,0:5),10,T)}))
df2 <- as.data.frame(sapply(paste(sample(letters,5,T),sample(letters,10,T), sep=""), function(x) {sample(letters[1:5],10,T)}))
df <- cbind(df2,df1)
Produkcja wyjście takiego ... (tylko kilka pierwszych kolumny 55 pokazany)
mogę iść o recoding NAS na 0 ręcznie jak df$col[is.na(df$col)] <- 0
dla każdej kolumny, ale biorąc pod uwagę, że istnieje tak wiele kolumn, zajęłoby to trochę czasu, aby wpisać, że wszystko na zewnątrz .
Jak mogę przekodować wszystkie te NA do 0 w linii lub trzech?
(zdaję sobie sprawę, mogłem stopić kolumny liczb całkowitych, a następnie przekodować ten jeden stopiony kolumnę, ale wolałbym zrobić to w podstawowej R)
Woah .... nie mogę uwierzyć, że to takie proste. Jak mogę określić zakres kolumn do recode, zamiast wszystkich? –
Nieważne, mam to. 'df [6:10] [is.na (df [6:10])] <- 0'. Nie pomyślałem nawet o dodaniu dwóch nawiasów kwadratowych z rzędu. –
@ TommyO'Dell, bez problemu. Tak jak powiedziałem, byłeś bardzo blisko! – A5C1D2H2I1M1N2O1R2T1