2016-11-09 66 views
0

我試圖檢索使用sqldf包從我的數據幀的一些行,但儘管該數據在那裏查詢將返回0行。查詢返回0行與sqldf包

str(DATA) 
'data.frame': 51500 obs. of 5 variables: 
$ MaxBullProb : Factor w/ 100 levels "CX000096 [email protected]_10",..: 1 2 3 4 5 6 7 8 9 10 ... 
$ systemid  : int 49 49 49 49 49 49 49 49 49 49 ... 
$ periodicityid : int 37 48 58 43 52 45 4 56 80 40 ... 
$ rptday  : Date, format: "2014-11-03" "2014-11-03" "2014-11-03" "2014-11-03" ... 
$ dailynetprofit: int -620 -2000 -470 -2250 -1830 -1590 750 685 -315 -555 ... 

我的計算機運行的查詢是:

QUERY<-"SELECT rptday,dailynetprofit from DATA WHERE rptday > '2014-11-03'" 
QUERY_RES<-sqldf(QUERY) 

QUERY_RES 
[1] rptday   dailynetprofit 
<0 rows> (or 0-length row.names) 

我不知道爲什麼查詢不工作。

+0

做dput(DATA)後,我看到我的日期即將到來的16084等,而不是「2014年11」。所以我用16084替換了'2014-11-03',查詢工作。 –

+0

相關 - http://stackoverflow.com/questions/39241030/r-date-function-in-sqldf-giving-unusual-answer-wrong-date-format/39241668 – thelatemail

回答

3

"Date"班列轉移到SQLite作爲天數從紀元這樣試試這個。見?fn

library(sqldf) 

compareDate <- as.Date("2014-11-03") 
QUERY <- "SELECT rptday, dailynetprofit from DATA WHERE rptday > $compareDate" 
fn$sqldf(QUERY) 

其中,在下面的說明的一個行測試輸入,得出:

 rptday dailynetprofit 
1 2014-11-04   -620 

注:可重複形式測試輸入(下次請提供像 這一點):

DATA <- data.frame(MaxBullProb = "CX000096 [email protected]_10", 
        systemid = 49, 
        periodicityid = 37, 
        rptday = as.Date("2014-11-04"), 
        dailynetprofit = -620)