替代sqlite或以更好的方式处理sqlite中的日期/时间字段

Cho*_*ens 5 sqlite r date data.table

我的数据通常是中型到大型,但从未被视为“大”数据。数据几乎总是复杂的关系。出于目的,我在这里谈论的是10-50个表,总大小为1-10 GB。而已。当我处理大于此的数据时,我会将其粘贴到Postgres或SQL Server中。

总的来说,我喜欢SQLite,但是我使用的数据有很多日期/日期时间字段,并且处理SQLite中的日期字段使我很头疼,当我在R和SQLite之间来回移动数据时,我的日期经常被弄乱了。 。

我正在寻找SQLite的基于文件的替代方案,并且可以从R中轻松使用。

要么

更好的技术/程序包,用于在不影响日期的情况下将数据移入/移出SQLite和R。我的目标是停止弄乱我的约会。例如,当我使用RSQLite包中的dbWriteTable时,我的日期通常被弄乱了,使其无法使用。

我的主要工作站正在运行Ubuntu,但我在Windows主导的办公室中工作。如果建议使用SQLite的替代方案,则+++表示可在两种(或更多)两种平台上均可使用的替代方案。

Yik*_* Lu 2

使用纪元时间和日期(距原点的天数、距原点的秒数)。使用纪元到 R POSIXct 或日期的转换速度很快(字符串非常慢)。

编辑:在重新阅读并考虑数据大小之后,另一种选择:

您可以简单地将表直接保存为 R 格式,或许还可以使用一小段额外的元数据来描述表之间的关键关系。您必须创建自己的约定等,但它肯定更平滑(没有阻抗不匹配)。

另外,我个人非常偏爱这个套餐data.table。它速度很快,并且具有纯 R 语法,但可以很好地映射到 SQL 概念。例如dt[i, j, by=list(...)],在 中,i对应于“where”,j对应于“select”和by“group by”,并且也有用于连接的工具,尽管我在这些工具周围编写了中缀包装器,因此更容易记住。

我通常只在 R 中进行数据处理工作(在最初从 SQLITE 中提取之后),并且我发现 data.table 比大规模 SQLDF 查询更快、更实用。

http://datatable.r-forge.r-project.org/