R: преобразовать список дат символов в «дни с» данного источника - PullRequest
0 голосов
/ 18 марта 2020

Мне нужно создать список для прикрепления в качестве измерения времени для файла NetCDF. Этот файл был составлен из множества файлов, которые были сгенерированы как ежемесячные средние данные из 6-часовых данных. В результате каждое t-наблюдение представляет собой просто хронологическое значение файла в стеке.

Сначала я сгенерировал последовательность дат, преобразовал ее в символы, а затем создал объект даты с указанием источника, представляющего интерес. Моя цель состояла в том, чтобы получить целочисленный список «дней с 1850-01-01», однако, преобразуя его в целое число, я вижу, что используемым источником все еще является значение по умолчанию R «1970-01-01».

Я новичок в работе с этим "юлианским" подходом, и я был бы признателен за любые советы относительно того, какие методы мне следует использовать.

Код выглядит следующим образом

dates <- seq(as.Date("1901-01-01"), by = "month", length.out = 12)
dates <- as.character(dates)

o <- as.Date("1850-01-01")

dates <- as.Date(dates, origin = o)
dates
dates <- as.numeric(dates)

1 Ответ

0 голосов
/ 18 марта 2020

Преобразовать dates в Date класс, вычесть o и преобразовать это в число c:

as.numeric(as.Date(dates) - o)
## [1] 18627 18658 18686 18717 18747 18778 18808 18839 18870 18900 18931 18961

Поочередно преобразовать оба числа в число c:

as.numeric(as.Date(dates)) - as.numeric(o)

или используйте difftime

as.numeric(difftime(as.Date(dates), o, unit = "day"))
...