tôi có nhiều cột số nguyên trong một khung dữ liệu, tất cả bằng NA mà tôi cần phải mã hóa lại để 0.Recode NA trong nhiều cột 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)
Sản xuất một sản lượng như thế này ... (chỉ có vài đầu tiên cột của 55 thể hiện)
tôi có thể đi về recoding NAS 0 bằng tay như df$col[is.na(df$col)] <- 0
cho mỗi cột, nhưng cho rằng có rất nhiều cột, nó sẽ mất một thời gian để gõ rằng tất cả ra .
Làm cách nào để tôi có thể mã hóa tất cả các NA này thành 0 trong một dòng hoặc ba?
(Tôi nhận ra tôi có thể làm tan chảy các cột số nguyên và sau đó mã hóa lại một cột tan chảy, nhưng tôi thà làm điều này trong cơ sở R)
Woah .... không thể tin rằng nó là dễ dàng. Làm thế nào tôi có thể sau đó xác định một loạt các cột để recode, thay vì tất cả chúng? –
Nevermind, tôi hiểu rồi. 'df [6:10] [is.na (df [6:10])] <- 0'. Tôi thậm chí không nghĩ thêm hai dấu ngoặc vuông trong một hàng. –
@ TommyO'Dell, Không sao cả. Như tôi đã nói, bạn đã rất thân thiết! – A5C1D2H2I1M1N2O1R2T1