在R SQLite包中,对于函数" dbWriteTable"有没有办法判断列类型?

时间:2015-12-07 20:12:58

标签: r sqlite

我最近问过this问题。

我能够将整个表放入SQLite3,并且正在努力指定类型。显然,' r' data.frame属性不完美地转换为SQLite3。

问题:
使用R SQLite包,用于" dbWriteTable"有没有办法指定列的类型,特别是布尔值和日期时间?

当我尝试使用dbWriteTable编写posixtime列时:

> dbWriteTable(conn=myDBcon,name = tlist[idx],value = rt1)

然后我收到以下错误:

Error in sqliteSendQuery(conn, statement, bind.data) : 
RAW() can only be applied to a 'raw', not a 'double'

如果我将posixtime视为数字,那么我就不会遇到这个问题。

1 个答案:

答案 0 :(得分:2)

您可以使用dbWriteTable()中的field.types参数指定列类型,该参数采用字符向量。指定的名称对应于表名:

dbWriteTable(conn=myDBcon, name = tlist[idx], value = rt1,
             field.types=list(dte="text", val="real", bool="integer"),
             append=FALSE, overwrite=TRUE, rownames=FALSE)