#r #time
Вопрос:
У меня есть следующий вектор x
класса difftime
, выражающий некоторые промежутки времени в секундах:
> x
Time differences in secs
[1] 0 0 7948800 0
> class(x)
[1] "difftime"
Я хотел бы преобразовать переменную таким образом, чтобы выразить каждое значение в днях, а не в секундах
Как я мог его получить?
Комментарии:
1. Как вы получаете
x
ценность ?difftime
функция имеет возможность установкиunits = "days"
.
Ответ №1:
Либо используйте units=
, как предложил Ронакшах,
x <- difftime(Sys.time() c(0, 100, 3*86400), Sys.time(), units = "days")
x
# Time differences in days
# [1] 0.000000000 0.001157407 3.000000000
или измените единицы измерения постфактум.
x <- difftime(Sys.time() c(0, 100, 3*86400), Sys.time())
x
# Time differences in secs
# [1] 0 100 259200
units(x) <- "days"
x
# Time differences in days
# [1] 0.000000000 0.001157407 3.000000000
Ответ №2:
Используйте as.numeric
, а затем преобразуйте в difftime, используя units="days"
и то, и другое. Если числовой вывод в порядке, то опустите as.difftime
в конце конвейера.
# test input
secs <- as.difftime(rep(7948800, 3), units = "secs")
secs |> as.numeric(units = "days") |> as.difftime(units = "days")
## Time differences in days
## [1] 92 92 92