簡體   English   中英

在 R 中使用 Sql 將 NA 替換為空白

[英]Replace NA with Blank using Sql in R

我正在嘗試使用 R 中的 Sql 將 NA 替換為空白。 我使用了下面的代碼,但我仍然得到“NA”而不是空白!

DF_TEST_PN <- sqldf("Select *, Case when Proj_Loess ='NA' then ' ' else Proj_Loess end as New_Proj_Loess From Test")

您可以在sqldf / sqLite ifnull

test <- tibble(Proj_Loess=c(NA,"test"))
DF_TEST_PN <- sqldf("Select *, ifnull(Proj_Loess,' ') as New_Proj_Loess From test")

  Proj_Loess New_Proj_Loess
1       <NA>               
2       test           test

假設我們有如下所示的 DF。 R 中的 NA 由 SQL 中的 null 表示,因此請使用coalesce ,如下所示。 coalesce依次查看每個參數並返回不是 null 的第一個參數,即不是 NA。 coalesce在 sqldf 支持的所有后端(sqlite、h2、mysql、postgresql)中都可用。

library(sqldf)

DF <- data.frame(A = c("A", NA, "B", NA, "C"))
sqldf("select *, coalesce(A, '') as V1 from DF")

給予:

     A V1
1    A  A
2 <NA>   
3    B  B
4 <NA>   
5    C  C

如果您想在問題中使用case when則使用is null ,如下所示:

sqldf("select *, case when A is null then '' else A end as V1 from DF")

暫無
暫無

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

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