2011-09-14 16 views
2

Je suis exécutant la commande suivante:erreur SQLDF - erreur de syntaxe

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

mais finissent par obtenir l'erreur suivante.

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

Quelqu'un peut-il me dire quoi de neuf?

> 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

Il serait utile que vous fournissiez des informations sur la structure de 'dat', en utilisant peut-être' dput (head (dat)) '. – joran

+0

En analysant simplement les exemples dans '? Sqldf', il semble que les périodes dans les noms de variables posent problème. Notez les exemples en utilisant le jeu de données iris. Essayez plutôt d'utiliser des traits de soulignement ou de renommer entièrement les colonnes. – joran

+0

Séparément, je ne pense pas que vous allez correspondre à quoi que ce soit avec le Create.Date (même si vous renommez pour contourner le problème de point) parce que dans votre 'dat' la variable est" 03: 23.0 "et vous essayez de correspondre à% 7/01/11% (bien que je puisse me tromper et l'un des 21 autres niveaux pourrait correspondre à cela). –

Répondre

1

Dans SQL, un point sépare le nom de base de données nom de la table. Donc, n'utilisez pas de points dans les noms pour cela.