从Access导入数据到R

4

我将尝试从Microsoft Access (.accdb)导入一个表格到R。

我使用的代码是:

library(RODBC)

testdb <- file.path("modelEAU Database V.2.accdb")

channel <- odbcConnectAccess2007(testdb)

WQ_data <- sqlFetch(channel, "WaterQuality")

似乎可以导入数据,但问题是日期和时间数据的导入。在 Access 文件中,有两列数据,一列是日期字段(dd/mm/yyyy),另一列是时间字段(hh:mm:ss)。当我将它们导入到 R 中时,日期列显示为 yyyy-mm-dd 格式,而时间列的格式为 1899-12-30 hh:mm:ss。此外,R 无法将这些格式识别为变量,我无法处理它们。
我也尝试了 mdb.get 函数,但也不起作用。
有人知道如何在 R 中导入 Access 数据并定义日期和时间格式吗?有没有办法将 Access 文件导入为文本文件?
注意:我使用的是 Office 2010 和 R 版本 2.14.1。
非常感谢您的帮助。

1
所需工具:substrpastestrptime(可能还有strsplit)。根据需要进行组合。(您可以将表格导出为CSV,然后直接读入R中,但仍然需要将这些字段拼接成有效的日期时间格式。) - joran
1个回答

1

查看运行str在数据框上的结果。这将告诉您关于数据实际存储方式的更多信息。通常,日期和时间是作为自一个原始日期的数字存储的(Access使用1899年12月30日,因为微软认为1900年是闰年)。有时它被存储为自原点以来的天数,并用时间表示为一天的分数,其他时候它是自原始日期以来的秒数(或毫秒数)。

您需要查看数据是如何发送的(无论是 access 和 odbc 是先转换为字符串还是发送天数或秒数),然后您将更好地了解如何在 R 中处理这些数据(可能需要进行转换)。

R News(R Journal 的前身) 2004 年 6 月刊中有一篇文章详细介绍了在 R 中处理日期和时间的常见方法,对您非常有用。

您应该决定最终要得到什么,是单个 DateTime 列、2 列数字、2 列字符等。


我能够解决打开数据和格式化数据的问题,这得益于查阅了2004年6月份R News中的文章。感谢提供这些信息。 - meikse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接