2015-05-27 25 views
8

Jak uzyskać bieżący rok z Sys.Date()?R/Shiny - Jak zdobyć bieżący rok z Sys.Date()?

mam ten kod poniżej,

 selectInput(
     inputId = "year", 
     label = "Year:", 
     choices = c(2014:Sys.Date()) 
     ) 

wynik,

<select id="year"><option value="2014" selected>2014</option> 
<option value="2015">2015</option> 
<option value="2016">2016</option> 
<option value="2017">2017</option> 
<option value="2018">2018</option> 
<option value="2019">2019</option> 
<option value="2020">2020</option> 
.... 
<option value="16582">16582</option></select> 

Ale wystarczy,

<select id="year"> 
    <option value="2014" selected>2014</option> 
    <option value="2015">2015</option> 
</select> 

Jakieś pomysły?

Odpowiedz

14

Możesz po prostu użyć funkcji format() tutaj, jak opisano na stronie pomocy dla Sys.Date(). Zobacz ?strptime dla wszystkich różnych parametrach:

> c(2014, format(Sys.Date(), "%Y")) 
[1] "2014" "2015" 

Jeśli rzeczywiście potrzebne wartości całkowite, a następnie:

> c(2014L, as.integer(format(Sys.Date(), "%Y"))) 
[1] 2014 2015 
2

Nie można po prostu to zrobić:

choices = c(2014:lubridate::year(Sys.Date())) 

użyciu lubridate uzyskać lat od Sys.Date()?

+0

Dzięki, ale pojawia się ten błąd 'BŁĄD: nie ma pakiet o nazwie„lubridate' – laukok

+1

@teelou - musisz zainstalować pakiet lubridate za pomocą 'install.pakcages (" lubridate ")' lub użyć funkcji Base R, zgodnie z sugestią poniżej. – Chase