[英]Recode NAs in multiple dataframe columns
我在數據框中有多個整數列,所有這些都是我需要重新編碼為0的NA。
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)
生成這樣的輸出...(僅顯示55的前幾列)
我可以手動將df$col[is.na(df$col)] <- 0
重新編碼為0,如df$col[is.na(df$col)] <- 0
,但鑒於列數太多,需要一段時間才能輸入所有列。
如何在一行或三行中將所有這些NA重新編碼為0?
(我意識到我可以融化整數列,然后重新編碼一個熔化的列,但我寧願在基礎R中這樣做)
你非常接近:
df[is.na(df)] <- 0
使用plyr
的colwise
元函數可以輕松實現:
dfZ=colwise(function(x)ifelse(is.na(x),0,x))(df)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.