2017-06-01 113 views
1

我刚刚合并了两个数据框,并试图删除值列中的NA。截至目前,我有..na.omit不删除NA(数据是数字)

t.dup.rights <- merge(dataframe1, dataframe2, by = "ID", all = T) 
na.omit(tdup.rights$value) 

值列有一个1或NA。我用

is.numeric(t.dup.rights$value) 

重复检查r不认为这是一个因素。运行na.omit函数后,数据框似乎保持不变。我正在处理一个特别庞大的数据集(200K obs)。我也在使用dplyr软件包。

+0

tdup.rights [is.na(tdup.rights $值)!] - 你也可以使用'合并(...,所有= F)' – HubertL

回答

0

您可以使用tidyr::drop_na

library(dplyr) 
library(tidyr) 

df <- data_frame(
    x = sample(c(NA, 1, 2), 10, replace = TRUE), 
    y = sample(c(NA, 1, 2), 10, replace = TRUE) 
) 

df 

#> # A tibble: 10 x 2 
#>  x  y 
#> <dbl> <dbl> 
#> 1  NA NA 
#> 2  1  2 
#> 3  2  2 
#> 4  NA  1 
#> 5  2 NA 
#> 6  1 NA 
#> 7  NA NA 
#> 8  2  2 
#> 9  1 NA 
#> 10 NA  2 

drop_na(df, x) 

#> # A tibble: 6 x 2 
#>  x  y 
#> <dbl> <dbl> 
#> 1  1  2 
#> 2  2  2 
#> 3  2 NA 
#> 4  1 NA 
#> 5  2  2 
#> 6  1 NA 
+0

谢谢!完美工作 – DPek