Rmysql dbWriteTable с полем.типы
у меня есть фрейм данных, называется df
, это выглядит так:
dte, val
2012-01-01, 23.2323
2012-01-02, 34.343
тип в Столбцах "дата" и числовых. Я хотел бы написать это в базу данных MySQL, используя уже открытое соединение. Соединение работает нормально, поскольку я могу запросить db fine. Я пытаюсь запустить следующее:
dbWriteTable(con, name="table_name", value=df, field.types=list("date", "double(20,10)"))
это создает ошибку:
ошибка в функции (classes, fdef, mtable): не удалось найти унаследованный метод для функции "делать.децибел.имена", для подписи "MySQLConnection", "NULL"
если я не укажу поле.введите и запустите:
dbWriteTable(con, name="table_name", value=df)
Я получаю сообщение об ошибке:
ошибка в mysqlExecStatement(conn, оператор,...): Драйвер RS-DBI: (не удалось запустить оператор: BLOB / TEXT столбец "dte", используемый в спецификации ключа без длины ключа)
может кто-нибудь пролить свет на это?
спасибо
1 ответов
после игры с вещами, я понял в чем проблема: поле.типы должны быть именованным списком, а не просто списком; кроме того, имена строк не должны быть включены, иначе нам нужны три типа полей. Для приведенного выше примера отлично работает следующее:
dbWriteTable(con, name="table_name", value=df, field.types=list(dte="date", val="double(20,10)"), row.names=FALSE)