2013-08-16 74 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)) 

心连心