【问题标题】:Dates when exporting to CSV and reading into R导出为 CSV 并读入 R 时的日期
【发布时间】:2013-04-30 10:55:18
【问题描述】:

我正在使用 R[1] 包 RGoogleDocs[2] 连接到我的 Google 文档,获取电子表格列表并从指定的电子表格中导入特定的工作表。按照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="") 函数)。

为了解决这个问题,我将日期列的格式设置为纯文本,但是尽管在日期/月份

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

1) Google Docs 内部用于表示日期的来源是什么? (我通过 Google 帮助搜索过,但找不到,更广泛的网络搜索也没有结果)

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

提前感谢您的宝贵时间,

松紧带

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

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

【问题讨论】:

    标签: r google-docs


    【解决方案1】:

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

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

    【讨论】:

    • 太好了,谢谢。你是怎么发现的?快速试错?
    猜你喜欢
    • 1970-01-01
    • 2016-08-14
    • 2023-03-31
    • 2016-07-25
    • 2020-02-05
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多