Функция даты значения Excel в R - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужно рассчитать зрелость кости, используя R, и я искал функцию, аналогичную DATEVALUE в Excel, но я не нашел ничего похожего. Я знаю, что DATEVALUE использует количество дней между 01.01.1900 и датой, поэтому, возможно, кто-то знает, как это сделать в R.

Например, в Excel DATEVALUE (01-01-1900) =1 и DATEVALUE (05-01-1900) = 5. Мне нужна аналогичная функция в R, чтобы получить количество дней между одной датой и другой.

Ответы [ 2 ]

2 голосов
/ 06 ноября 2019

Как насчет этого?

bone_df <- data.frame(date=c("2019-07-26","2019-07-25"),bone_start=c("2019-01-01","2019-01-01"))

bone_df$date_value <- as.Date(as.character(bone_df$date), format="%Y-%m-%d")-
  as.Date(as.character(bone_df$bone_start), format="%Y-%m-%d")

bone_df

        date bone_start date_value
1 2019-07-26 2019-01-01   206 days
2 2019-07-25 2019-01-01   205 days
1 голос
/ 06 ноября 2019

Эквивалент DATEVALUE() будет просто

date <- as.Date("1900-01-01")

as.numeric(date)

# Output
[1] -25567

. Это дает отрицательное число, потому что ссылка на дату R 1970-01-01 . Так что as.numeric(as.Date("1970-01-01")) выводит 0.

Если вы хотите разницу в днях между двумя датами:

date1 <- as.Date("2000-01-01")

date2 <- as.Date("2019-11-06")

date2 - date1
# Output: Time difference of 7249 days (class: difftime, type: double)

as.numeric(date2 - date1)
# Output: 7249

Посмотрите на пакет lubridate для набора хороших инструментов дляработа с датой-временем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...