2013-08-16 101 views
-2

我想與在數據幀中的現有值來替換丟失的值替換缺失值

dim(lookup) 

[1] 713 686

`head(test)` 

ID DisPrice.1 DisType.1 DisValue.1 DisPrice.2 DisType.2 DisValue.2.... 
2  1 3.9   %   0   NA  <NA>   NA..... 
225 2 NA  <NA>   NA  10.9   %   0..... 
264 3 NA  <NA>   NA   NA  <NA>   NA..... 
522 4 NA  <NA>   NA   NA  <NA>   NA..... 
732 5 NA  <NA>   NA   NA  <NA>   NA..... 
1182 6 NA  <NA>   NA   NA  <NA>   NA..... 

所需的輸出:

ID DisPrice.1 DisType.1 DisValue.1 DisPrice.2 DisType.2 DisValue.2..... 
2  1 3.9   %   0   10.9   %   0..... 
225 2 3.9   %   0   10.9   %   0..... 
264 3 3.9   %   0   10.9   %   0..... 
522 4 3.9   %   0   10.9   %   0..... 
732 5 3.9   %   0   10.9   %   0..... 
1182 6 3.9   %   0   10.9   %   0..... 
+0

請'dput'如果有缺失的數值和*兩種不同的*值重複性 – Metrics

+2

數據柱。用什麼來代替NA? –

回答

2

一次完成所有列。編寫一個函數,爲每一行復制非缺失值,並將該函數應用於數據框的每一列。

repl <- function(x) rep(x[!is.na(x)], length(x)) 
data.frame(apply(df, 2, repl)) 

其中df是數據框的名稱。

0

假設你要替換所有NA S和<NA> S:

# converte all NA´s to the same "type" 
test[is.na(test)] <- "<NA>" 

fun <- function(x){ 
    if(all(!grepl("NA", x))) return(x) # for ID 
    rep(x[!grepl("NA", x)], length(x)) 
} 

data.frame(apply(test, 2, fun)) 

心連心