我的数据往往是中到大,但从来没有资格作为“大”数据。数据几乎总是复杂的关系。为了我在这里讨论的目的,10-50个表的总大小为1-10 GB。没别的了。当我处理比这更大的数据时,我将把它放入Postgres或Server中。
总的来说,我喜欢SQLite,但是我处理的数据有很多日期/日期时间字段,在SQLite中处理日期字段会让我头疼,当我在R和SQLite之间来回移动数据时,我的约会经常会受到破坏。
我要么正在寻找一种基于文件的替代SQLite,这是很容易使用的R。
或
更好的技术/包,用于在不破坏日期的情况下将数据运入/移出SQLite和R。我的目标是停止破坏我的约会。例如,当我从dbWriteTable包中使用RSQLite时,我的日期通常会变得混乱,使它们无法使用。
我的主要工作站正在运行Ubuntu,但我在一个由Windows主导的办公室工作。如果建议使用SQLite的替代方案,则可以选择在两种平台(或更多平台)上工作的替代方案。
发布于 2012-05-14 16:24:39
使用划时代的时间和日期(从原点开始的天数,距离原点的秒)。使用epochs到R、POSIXct或Date的转换非常快(字符串非常慢)。
编辑:另一种选择,在重新阅读并考虑数据的大小之后:
您可以简单地以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/
发布于 2014-05-23 22:00:37
sqlite想要以标准格式读取数据“YYYY DD HH:MM:SS”(如果不需要的话,可以省略时间部分)--我不知道读取任意日期字符串的方法。这将导致存储规范化日期。
在输出时,您希望使用sqlite函数将日期格式化为其他软件所需的任何内容--检查strftime()的选项。
例如,Octave喜欢从0开始的天数,所以如果我有一个列为"date“的表mydata,我会这样做。
从mydata中选择julianday(mydate)-1721059.666667
神奇的数字是julianday("0000-01-01T00:00:00-04:00"),并补偿了这样的事实,即朱连代开始于公元前4017年或诸如此类的事情,而十进制则从0开始计算。
https://stackoverflow.com/questions/10454602
复制相似问题