2016-12-08 4 views
0

У меня есть список дней в формате «день года», полученный путем применения функции lubridate :: yday() к списку дат. Так, например, из следующих дат (формат дд-мм-гггг):Есть ли обратная функция yday lubridate?

01-01-2015 
01-02-2015 
... 

путем применения yday() вы получите

1 
2 
... 

Есть функция, которая может сделать обратное, учитывая выход yday и год? То есть, со значения yday и года, вернитесь к дате в формате mm-dd-yyyy?

+0

Я считаю, что этот вопрос будет лучше в StackOverflow. – Jon

+0

Решение может состоять только в том, чтобы создать последовательность дней (формат mm-dd-yyyy), применить функцию lubridate :: yday() для дня и получить год. Затем просто выполните простое слияние или соединение. Не передумай. – Jon

+0

Вам не нужно слияние. R имеет арифметику даты. См. Мой ответ. –

ответ

1

Любая последовательность добавлена ​​к Date() типа создает новую Date() последовательность с только что смещение.

Свидетель:

R> as.Date("2016-01-01") + 0:9 
[1] "2016-01-01" "2016-01-02" "2016-01-03" 
[4] "2016-01-04" "2016-01-05" "2016-01-06" 
[7] "2016-01-07" "2016-01-08" "2016-01-09" 
[10] "2016-01-10" 
R> as.Date("2016-01-01") + 100:109 
[1] "2016-04-10" "2016-04-11" "2016-04-12" 
[4] "2016-04-13" "2016-04-14" "2016-04-15" 
[7] "2016-04-16" "2016-04-17" "2016-04-18" 
[10] "2016-04-19" 
R> 

Так что еще раз так называемый lubridate вопрос, как ничего не делать с этим пакетом, но просто необходимо знать, как функции базовых типов R.

+0

Nice - всегда как простые решения для даты. Кроме того, 'as.Date (paste (100,2015), format ="% j% Y ")' будет работать соответствующим образом. – thelatemail

+0

Интересно. Не пробовал «год года»; имеет смысл. Заметили, что до этого «weeknum year» терпит неудачу - не дата, как нерешительность среди семи возможностей. «weekday weeknum year» работает. Но reparsing уступает только добавлению :) –

+0

Спасибо за нисходящий-без комментариев, анонимный пользователь SO. Всегда приятно видеть конструктивную критику, что еще больше улучшает ответ, который уже работает. О, подожди, ... –

0
> yday ("1990-03-17") - 1 + as.Date ("1990-01-01") 
[1] "1990-03-17" 
Смежные вопросы