r - Excel 数字日期编码 (UTC) 到日期转换
问题描述
我似乎找不到答案,我尝试了多种方法——我对 R 还是很陌生。
我在数据集中有两个变量Old Data
Open Date
- Excel中的数字和Closed Date
-POSIXct
,格式:“2017-10-11 12:39:37”
我无法让他们为数据集中的每一行减去,转换似乎已关闭
这就是我想要做的(没有语法):
Newdata <- Newtime = (Closed Date - Open Date) from Old Data
结果如下dput(Old Data)
:
structure(list(open_date = c(43018, 43018, 43020, 43027), close_date = c("9/9/2018 12:11:11",
"9/11/2018 13:21:11", "9/1/2018 14:31:41", "9/5/2018 15:44:41"
)), class = "data.frame", row.names = c(NA, -4L))
提前致谢!
解决方案
您可以使用包的excel_numeric_to_date
功能janitor
将数字Excel日期格式转换为Date
,然后使用包的mdy
功能将lubridate
字符串转换为Date
。然后您可以按difftime
天计算周期,如下所示:
library(janitor)
library(lubridate)
df <- structure(list(open_date = c(43018, 43018, 43020, 43027),
close_date = c("9/9/2018 12:11:11",
"9/11/2018 13:21:11", "9/1/2018 14:31:41", "9/5/2018 15:44:41"
)), class = "data.frame", row.names = c(NA, -4L))
df$open_date <- excel_numeric_to_date(df$open_date)
df$close_date <- as_date(dmy_hms(df$close_date))
df$new_date_time <- df$close_date - df$open_date
df
输出:
open_date close_date new_date_time
1 2017-10-10 2018-09-09 334 days
2 2017-10-10 2018-11-09 395 days
3 2017-10-12 2018-01-09 89 days
4 2017-10-19 2018-05-09 202 days
推荐阅读
- python - 如何确保反应来自用户而不是机器人本人?
- git - 如何在 Github 中添加检查以在拉取请求中查找 Jira id
- c++ - 多行的clang格式数组初始化器?
- laravel - 请求输入在中间件中返回 null
- r - 如何更改 R 中 effect_plot (jtools) 的间隔颜色?
- spring-boot - spring-boot升级后的404
- google-drive-api - Google Drive API 成员限制
- neo4j - Neo4j (cypher-shell) 为现有节点创建关系太慢
- c# - 如何在通过 dotnet CLI 安装 NuGet 包时运行命令
- function - COMSOL 中作为边界条件的输入函数