簡體   English   中英

從R中的sql文件中選擇NA值

[英]Selecting NA values from sql file in R

我在R中使用以下代碼讀取sql表

library(RSQLite)

setwd("C:/Users/Cat/Downloads")
drv = dbDriver("SQLite")
# Use the driver to connect to a particular sqlite database file
con = dbConnect(drv, "cartype")

dbListTables(con)

並且表Sale中有名為ID和credit的列。 有些功勞缺失,我可以使用以下代碼選擇它們。

wow = dbGetQuery(con, 'SELECT DISTINCT ID FROM Sale WHERE
                 credit IS NOT \"NA\";')

問題是如何選擇日期為NA的ID? 我嘗試了代碼

wow = dbGetQuery(con, 'SELECT DISTINCT ID FROM Sale WHERE
                 credit IS \"NA\";')

要么

wow = dbGetQuery(con, 'SELECT DISTINCT ID FROM Sale WHERE
                 credit == \"NA\";')

該代碼可以工作,但給出的結果不正確,即有0個結果與條件匹配,而它應具有100個以上不帶信用的ID。

誰能幫助我,並告訴我如何獲得具有NA信用額的ID? 謝謝 !

我認為您對誤解如何存儲在數據庫中產生了誤解。 這些通常存儲為NULL,而不是NA。

您的第一條語句之所以有效,是因為它正在將某種類型的列(例如date,int,varchar)與字符串(“ NA”)進行比較,並且這將排除NULL,因為字符串比較(無論是隱式還是顯式)將始終排除缺失,並且您的所有日期都將不同於“ NA”,它將返回所有不丟失的記錄。

您的第二個和第三個語句返回0記錄的原因是因為它再次進行了字符串比較,該比較將排除NULL並且也找不到匹配項。

對於SQLite,有一個很棒的頁面介紹了如何處理NULL,這可能會幫助您更詳細地了解此主題: http : //sqlite.org/nulls.html

暫無
暫無

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

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