1

我正在使用 R[1] 包 RGoogleDocs[2] 连接到我的 Google Docs,获取电子表格列表并从指定的电子表格中导入特定的工作表。按照https://github.com/hammer/google-spreadsheets-to-r-dataframe中给出的示例,我可以做到这一点没问题

我遇到的问题是日期列。在 Google Docs 下,我选择将它们格式化为 YYYY-MM-DD,它们在 Google Docs 中显示良好。

但是,导入到 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 抱怨日期为非标准格式*)。

在此先感谢您的时间,

松紧线

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

  • 我可以编写一个函数来提取日/月/年作为单独的元素并推导出它,但我想有一个更直接的方法。
4

1 回答 1

2

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

as.Date(41320, origin="1899-12-30")
# [1] "2013-02-15"
# etc
于 2013-04-30T12:59:27.593 回答