簡體   English   中英

在多個數據幀列中重新編碼NA

[英]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

使用plyrcolwise元函數可以輕松實現:

dfZ=colwise(function(x)ifelse(is.na(x),0,x))(df)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM