无法将 "Excel time" 转换为 "R time"
Trouble converting "Excel time" to "R time"
我有一个 Excel 列,其中包含应该全部作为时间值输入的数字和时间。有些是数字形式(915),有些是时间形式(9:15,在 R 中显示为小数)。似乎我设法将它们全部设置为 Excel(年-月-日 hh:mm:ss)中的相同格式,尽管日期不正确 - 这并不重要,我只需要时间.但是,我似乎无法将这个新列 (time - new
) 转换回 R 中的正确时间值(字符或时间格式)。
我确定这个答案已经存在于某处,我只是找不到有效的答案...
# Returns incorrect time
x$new_time <- times(strftime(x$`time - new`,"%H:%M:%S"))
# Returns all NA
x$new_time2 <- as.POSIXct(as.character(x$`time - new`),
format = '%H:%M:%S', origin = '2011-07-15 13:00:00')
> head(x)
# A tibble: 6 x 8
Year Month Day `Zone - matched with coordinate tab` Time `time - new` new_time new_time2
<dbl> <dbl> <dbl> <chr> <dbl> <dttm> <times> <dttm>
1 2017 7 17 Crocodile 103 1899-12-31 01:03:00 20:03:00 NA
2 2017 7 17 Crocodile 113 1899-12-31 01:13:00 20:13:00 NA
3 2017 7 16 Crocodile 118 1899-12-31 01:18:00 20:18:00 NA
4 2017 7 17 Crocodile 123 1899-12-31 01:23:00 20:23:00 NA
5 2017 7 17 Crocodile 125 1899-12-31 01:25:00 20:25:00 NA
6 2017 7 16 West 135 1899-12-31 01:35:00 20:35:00 NA
在这里找到了这个答案:
Extract time from timestamp?
library(lubridate)
# Adding new column to verify times are correct
x$works <- format(ymd_hms(x$`time - new`), "%H:%M:%S")
我有一个 Excel 列,其中包含应该全部作为时间值输入的数字和时间。有些是数字形式(915),有些是时间形式(9:15,在 R 中显示为小数)。似乎我设法将它们全部设置为 Excel(年-月-日 hh:mm:ss)中的相同格式,尽管日期不正确 - 这并不重要,我只需要时间.但是,我似乎无法将这个新列 (time - new
) 转换回 R 中的正确时间值(字符或时间格式)。
我确定这个答案已经存在于某处,我只是找不到有效的答案...
# Returns incorrect time
x$new_time <- times(strftime(x$`time - new`,"%H:%M:%S"))
# Returns all NA
x$new_time2 <- as.POSIXct(as.character(x$`time - new`),
format = '%H:%M:%S', origin = '2011-07-15 13:00:00')
> head(x)
# A tibble: 6 x 8
Year Month Day `Zone - matched with coordinate tab` Time `time - new` new_time new_time2
<dbl> <dbl> <dbl> <chr> <dbl> <dttm> <times> <dttm>
1 2017 7 17 Crocodile 103 1899-12-31 01:03:00 20:03:00 NA
2 2017 7 17 Crocodile 113 1899-12-31 01:13:00 20:13:00 NA
3 2017 7 16 Crocodile 118 1899-12-31 01:18:00 20:18:00 NA
4 2017 7 17 Crocodile 123 1899-12-31 01:23:00 20:23:00 NA
5 2017 7 17 Crocodile 125 1899-12-31 01:25:00 20:25:00 NA
6 2017 7 16 West 135 1899-12-31 01:35:00 20:35:00 NA
在这里找到了这个答案: Extract time from timestamp?
library(lubridate)
# Adding new column to verify times are correct
x$works <- format(ymd_hms(x$`time - new`), "%H:%M:%S")