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)