2015-05-27 7 views
8

Wie kann ich das aktuelle Jahr mit Sys.Date() bekommen?R/Shiny - Wie bekomme ich das aktuelle Jahr mit Sys.Date()?

ich diesen Code unten haben,

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

Ergebnis

<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> 

Aber ich brauche nur,

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

Irgendwelche Ideen?

Antwort

14

Sie können hier einfach die format()-Funktion verwenden, wie in der Hilfeseite für Sys.Date() beschrieben. Siehe ?strptime für all die verschiedenen Spezifikationen:

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

Wenn Sie tatsächlich ganzzahlige Werte benötigen, dann:

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

konnte nicht Sie dies nur tun:

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

lubridate mit dem Jahr von Sys.Date() zu bekommen?

+0

Danke, aber ich bekomme diese Fehlermeldung 'ERROR: Es gibt kein Paket‚genannt ist lubridate' – laukok

+1

@teelou - Sie müssen das Paket lubridate mit 'install.pakcages (" lubridate ")' installieren oder eine Basis-R-Funktion verwenden, wie unten vorgeschlagen. – Chase