как рассчитать разницу дат в R, когда речь идет о BC и AD - PullRequest
0 голосов
/ 10 июня 2018

У меня есть фрейм данных, подобный этому:

df = data.frame(dt = c('0101-01-01','0023-10-20'), comment = c('BC','AD'))

вторая точка - это год -23 согласно комментарию.

как мне заставить R узнать, что первая дата является BCи получить разницу во времени от этих двух дат?

1 Ответ

0 голосов
/ 10 июня 2018

Мы конвертируем в numeric после изменения класса yearmon, изменим знак на - для тех, кто имеет «BC» в «комментарии» и возьмем разницу

library(zoo)
v2 <- as.numeric(as.yearmon(df$dt))

Если мы хотимчтобы сделать «год» более приближенным

v2 <- lubridate::year(df$dt) + 
                   (strptime(df$dt, format = "%Y-%m-%d")$yday + 1)/365

i1 <- df$comment == "BC"
v2[i1] <- -1* v2[i1]
diff(v2)
#[1] 124.75
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...