【问题标题】:Trouble importing Excel time Duration data into R (with GUI EZR)将 Excel 持续时间数据导入 R 时遇到问题(使用 GUI EZR)
【发布时间】:2018-10-23 23:16:41
【问题描述】:

把我的头发扯掉了。我花了几个小时才让 rJava 启动并运行(因为 mac OS X el capitan 不想与 Java 玩得很好)以加载特定于 excel 的数据导入包等。但最终这并没有解决我的问题,而我几乎是无计可施。请帮忙。

基本情况是这样的:

拥有跨越几年的简单 Excel 持续时间数据。所以我要导入的两列是时间(持续时间)和年份(2016、2017 等)。

在 Excel 中,数据的格式为 [h]:mm:ss,因此可以正确显示(数据与一个月的工作小时数有关,因此通常类似于 80:xx:xx ~ 120:xx:xx) .我知道在 excel 中,尽管单元格的格式如上,并且仅显示相关的小时数,但实际上 excel 已在该小时数数据中附加了一个(不相关的、任意的)日期。我进行了搜索和搜索,发现在 excel 处理日期/时间/持续时间的方式中无法绕过此限制。

我通过 R 指挥官 GUI 中的“导入数据 -> 从 excel 数据集导入”菜单项将此数据导入 R,而不是控制台。

但是,当将数据导入 R 时,数据显示为单个数字,例如大约110 小时转换为 4.xxxxx,而不是 hh:mm:ss。因此,在运行分析和生成绘图等时,不会显示实际(有意义的)110:xx:xx 类型数据,而是显示完全没有意义的 4.xxxxxx。

如果我更改 excel 单元格的格式以显示日期和时间,而不是使用 [h]:mm:ss 单元格格式,R 会错误地将数据解释为同样无用的内容,例如 1901/02/ 04 05:23 am

我已经安装并加载了各种包,例如 xlsx、XLConnect、lubridate 等,但至少从 GUI 中,R 如何解释导入时的 excel 数据并没有任何区别。

请告诉我该怎么做

a) 将原始数据编辑为 R 将理解为 hh:mm:ss 格式的持续时间(仅是持续时间)的格式,或

b) 导入后从 R 中格式化当前数据,以便它以正确的方式显示数据,而不是无用的数字或任意日期/时间?

[请注意:当给出需要执行的命令等时,我可以使用控制台。但是我需要找到一个最终允许从 GUI 中导入和/或操作数据的解决方案,而不是通过在控制台中输入一堆命令,因为最终用户(不是我)的编程能力为零并且不能使用控制台,并且只会通过 GUI 使用 R。]

【问题讨论】:

    标签: r excel date duration lubridate


    【解决方案1】:

    您的代码是以秒为单位从 excel 导入数据吗?

    library(lubridate)
    duration <- lubridate::as.duration(400000)
    as.numeric(duration, "hours")
    

    111.1111

    as.numeric(duration, "days")
    

    4.62963

    seconds_to_period(400000)
    

    “4d 15H 6M 40S”

    【讨论】:

    • 看来它必须以天为单位导入,因为“小时”列中的所有数据都在 3.x ~ 4.x 范围内
    猜你喜欢
    • 2020-11-19
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多