r - 将 Excel 持续时间数据导入 R 时遇到问题(使用 GUI EZR)
问题描述
在这个上扯掉我的头发。我花了几个小时才让 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 点
我已经安装并加载了各种包,例如 xlsx、XLConnect、lubridate 等,但至少从 GUI 中,R 如何解释导入时的 excel 数据并没有任何区别。
请告诉我我该怎么做
a) 将原始数据编辑为 R 将理解为 hh:mm:ss 格式的持续时间(仅是持续时间)的格式,或
b) 导入后从 R 中格式化当前数据,以便它以正确的方式显示数据,而不是无用的数字或任意日期/时间?
[请注意:当给出需要执行的命令等时,我可以使用控制台。但是我需要找到一个最终允许从 GUI 中导入和/或操作数据的解决方案,而不是通过在控制台中输入一堆命令,因为最终用户(不是我)的编程能力为零并且不能使用控制台,并且只会通过 GUI 使用 R。]
解决方案
您的代码是以秒为单位从 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”
推荐阅读
- winapi - NTFS 定位并从 RAW 读取 $MFT
- linux - Bash 脚本未返回正确的文件大小
- vba - 滚动到表单中的子报表底部 (Access 2016)
- python - google vision api可以用来实现光学标记识别吗?
- powershell - Powershell 帮助。无法弄清楚出了什么问题
- powermockito - 如何为 google spanner 语句和 Statement Builder 创建模拟测试
- ansible - 使用 Ansible 复制特定文件
- linux - 如何处理 docker overlay/diff 目录中巨大的 .m2 目录?
- javascript - 如何调用 URL,将它返回的 JSON 传递给函数并循环遍历结果以记录名称
- c# - 命名空间“Quartz”中不存在类型或命名空间名称“Collection”