首页 文章

导入单独的日期和时间(hh:mm)excel列,用于计算时间

提问于
浏览
1

新手在这里,第一篇文章(请温柔) . 我一直试图解决这个问题几个小时,所以最后决定时间提出建议 .

我有一个大型电子表格,我用readxl导入 . 它包含一列日期(格式为dd / mm / yyyy)和几个时间列,格式为hh:mm,如下所示:excel

基本上我希望能够导入时间和日期列并将它们组合起来,这样我就可以进行其他一些计算,比如时间流逝 .

  • 如果我导入让R猜测col-types,它会将时间转换为POSIXct,但是它们会在1899年附加一个日期:R_POSIXct

  • 如果我强制readxl将时间列分配给数字,我会得到一个小数(例如07:97的0.315972222),然后尝试使用类似的语法转换为

format(as.POSIXct(Sys.Date()0.315972222),“%Y-%m-%d%H:%M:%S”,tz =“UTC”)

df $ datetime < - 格式(as.POSIXct(df $ date df $ time),“%Y-%m-%d%H:%M”,tz =“UTC”)

这导致正确的日期,但时间为00:00,而不是它通过的时间 .

我试过在这里搜索并发现帖子不是完全相同的问题(例如Combining date and time columns into dd/mm/yyyy hh:mm),并且已经广泛阅读,包括关于lubridate,但由于我只有6个月进入R,我发现一些解释有点神秘 .

建议或点燃赞赏(如果有解决方案,我还没有找到)

1 回答

  • 1

    如果你减去1899-01-01和1970-01-01之间的天数,然后将那个(移位的)Excel数值乘以3600,你应该接近自1970年开始以来的秒数 . 然后你可以转换为带有as.POSIXct的POSIXct(x,origin =“1970-01-01”) . 然而,这似乎是“艰难的道路”

    将日期时间转换为YYYY-MM-DD H:M:S格式然后导出为csv以作为文本导入到R中将更容易且可能更准确 . read.csv 有"POSIXct" colClasses参数,但它不处理日期和时间的单独列 . 为此,建议您输入字符值,然后 paste 日期和时间 . 然后看你为as.POSIXct格式化字符串 . dd / mm / yyyy "format"将由"%d/%m/%Y"指定 .

相关问题