2016-07-17 13 views
4

ich eine CSV-Datei zu meinem R geladen, und als ich sqldf zu verwenden versucht, einige Spalte auszuwählen, es ging immer zuKonnte die Datenbank verbinden, wenn sqldf in r mit

Error in .local(drv, ...) : 
    Failed to connect to database: Error: Access denied for user 
    'User'@'localhost' (using password: NO) 
Error in !dbPreExists : invalid argument type 

Ich weiß nicht, wie man es repariert.

Hier ist mein Skript:

library("RMySQL") 
library(sqldf) 
acs<-read.csv("getdata_data_ss06pid.csv",head = T) 
sqldf("select pwgtp1 from acs where AGEP < 50") 
+0

können Sie die Ausgabe von 'head (acs)' zu Ihrer Frage hinzufügen. Warum brauchst du "RMySQL"? – Bulat

+0

Siehe '? Sqldf' und lies die Beschreibung des' dbname'-Arguments, des 'drv'-Arguments und auch des Teils zwei Absätze über dem Abschnitt Referenzen, der mit" On MySQL ... "beginnt. –

Antwort

10

Es scheint nicht, wie Sie die RMySQL Bibliothek laden müssen, wenn sqldf verwenden, da Sie bereits die Daten in den Speicher gelesen haben, die hier das Problem zu sein scheint :

library(RMySQL) 
library(sqldf) 
sqldf("select * from df limit 6") 

Error in .local(drv, ...) : Failed to connect to database: Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Error in !dbPreExists : invalid argument type

Allerdings, wenn RMySQL Bibliothek abgelöst wird, sqldf Werke:

detach("package:RMySQL", unload=TRUE) 
sqldf("select * from df limit 6") 
# time type 
# 1 1 type1 
# 2 2 type1 
# 3 3 type2 
# 4 4 type1 
# 5 5 type2 
# 6 6 type1