2011-09-14 6 views
2

나는 다음과 같은 명령을 실행 해요 :SQLDF 오류 - 구문 오류

sqldf("SELECT * FROM dat WHERE Form LIKE '%compare%' AND Create.Date LIKE '%7/01/11%' AND Post.Status = 'Success'") 

하지만 다음과 같은 오류를 받고 결국.

Error in sqliteExecStatement(con, statement, bind.data) : 
    RS-DBI driver: (error in statement: near "Create": syntax error) 

아무도 말해 줄 수 있습니까?

> str(dat) 
'data.frame': 23 obs. of 12 variables: 
$ ID   : int 4873 4874 4890 4893 4895 4902 4904 4905 4906 4921 ... 
$ Name   : Factor w/ 18 levels "Casey Ryan","Elizabeth Cullen",..: 13 9 15 15 16 15 15 15 16 12 ... 
$ Create.Date : Factor w/ 23 levels "03:23.0","14:43.0",..: 3 15 20 13 23 6 12 14 21 4 ... 
$ In.Click.ID : int 32787 32788 13480 21050 21041 32824 27807 27806 15350 32911 ... 
$ Traffic.Source: Factor w/ 3 levels "FACEBOOK","GOOGLE",..: 3 3 1 3 2 3 3 3 2 3 ... 
$ Refer.Domain : Factor w/ 7 levels "","autoinsurancestep",..: 3 2 7 1 2 4 4 2 5 4 ... 
$ Form   : Factor w/ 3 levels "","autoinsurancestep",..: 2 1 1 1 3 3 3 3 1 3 ... 
$ Keyword  : Factor w/ 3 levels "","{keyword}",..: 1 1 2 1 3 1 1 1 2 1 ... 
$ Ping.Status : Factor w/ 2 levels "","Success": 1 2 1 1 1 2 1 1 1 2 ... 
$ Post.Status : Factor w/ 2 levels "","Success": 1 2 1 1 1 2 1 1 1 2 ... 
$ Buyer   : Factor w/ 8 levels "","ALL_WEB_LEADS",..: 1 6 1 1 1 7 1 1 1 8 ... 
$ Amount  : int 0 217 0 0 0 3000 0 0 0 1200 ... 
+2

아마도'dat' 구조체에'dput (head (dat)) '을 사용하여 정보를 제공하면 도움이 될 것입니다. – joran

+0

'? sqldf'의 예제를 스캔하면 변수 이름의 마침표가 문제가되는 것처럼 보입니다. 조리개 데이터 세트를 사용하는 예제에 유의하십시오. 대신 밑줄을 사용하거나 열의 이름을 완전히 바꾸십시오. – joran

+0

별도로, 나는 당신이'dat' 변수가 "03 : 23.0"이고 당신이하려고하는 것 때문에 Create.Date와 어떤 것도 일치하지 않을 것이라고 생각합니다. % 7/01/11 %와 일치합니다 (틀렸을 수도 있고 다른 21 개 레벨 중 하나가 일치 할 수도 있음). –

답변

1

SQL에서 점은 데이터베이스 이름과 테이블 이름을 구분합니다. 따라서 이름에 점을 사용하지 마십시오.