Ho un frame di dati, chiamato df
, che assomiglia a questo:RMySQL dbWriteTable con field.types
dte, val
2012-01-01, 23.2323
2012-01-02, 34.343
Il tipo delle colonne è data e numerico. Vorrei scriverlo su un database MySQL usando una connessione già aperta. La connessione funziona bene in quanto sono in grado di interrogare la db fine. Io cerco di eseguire il seguente:
dbWriteTable(con, name="table_name", value=df, field.types=list("date", "double(20,10)"))
Questo genera l'errore:
Error in function (classes, fdef, mtable) : unable to find an inherited method for function "make.db.names", for signature "MySQLConnection", "NULL"
Se non si specifica una field.types, e corro:
dbWriteTable(con, name="table_name", value=df)
ottengo l'errore :
Error in mysqlExecStatement(conn, statement, ...) : RS-DBI driver: (could not run statement: BLOB/TEXT column 'dte' used in key specification without a key length)
Qualcuno può perdere un po ' ight su questo?
Grazie
Dubito piuttosto che la colonna dte è di classe "Data". Sta stampando come se fosse di "carattere" di classe. Dovresti pubblicare invece i risultati di str() sulla testa (nome-oggetto). –
la colonna data è di classe data, ho appena scritto l'esempio a mano sopra. faccio esplicitamente as.Date() su di esso per assicurarmi di ciò. – Alex