导出为CSV并读入R时的日期

时间:2013-04-30 10:55:18

标签: r google-docs

我正在使用R [1]软件包RGoogleDocs [2]连接到我的Google文档,获取电子表格列表并从指定的电子表格导入特定的工作表。按照https://github.com/hammer/google-spreadsheets-to-r-dataframe

给出的示例,我可以做到这一点没问题

我遇到的问题是日期列。在Google文档下,我选择将这些格式设置为YYYY-MM-DD,并且它们在Google文档中显示正常。

但是,导入到R的导出CSV将这些作为数字字段,例如....

Displayed in Google Docs > As imported to R
2013-02-15  > 41320 
2013-02-19  > 41324 
2013-02-26  > 41331 
2013-03-22 > 41355

这不一定是个问题,因为看起来这些是已过去的日期,但我不知道它们被计算的来源是什么。一旦我知道原点,R就有一个转换日期/时间的功能,允许指定它,这样我就可以在R内部重新格式化(使用as.Date(date,origin =“”)函数)。

为了尝试绕过这个,我将格式设置为日期列的纯文本,但是尽管键入了日期/月份的前导零的日期< 10它们没有导出,所以as.Date()函数抱怨它们是非标准格式。

因此,我有两个选项/问题......

1)Google Docs在内部用于表示日期的来源是什么? (我通过谷歌帮助搜索了这个,但找不到它,更广泛的网络搜索毫无结果)

2)是否有将日期作为字符串导出为CSV的方法? (我试过这个,但是当他们在Google Docs中设置为“纯文本”时,输入日期时输入的前导零('0')不会出现在导出中,这意味着R会抱怨日期是非标准格式*)。

提前感谢您的时间,

slackline

[1] http://www.r-project.org/ [2] http://www.omegahat.org/RGoogleDocs/

  • 我可以编写一个函数来将日/月/年拉出作为单独的元素并导出它,但是我认为有更直接的方法。

1 个答案:

答案 0 :(得分:2)

关于您的问题编号1):显然,Google文档使用1899-12-30作为日期来源:

as.Date(41320, origin="1899-12-30")
# [1] "2013-02-15"
# etc