1
我正在尋找解決問題的方法,該方法基於評估sys.Date()與具有一定範圍的日期的數據框在下拉列表(SelectInput)列表中顯示默認值。SelectInput匹配當前日期的默認值
DF1:
code date group
10001 2015-10-07 a
10005 2015-10-11 b
10022 2015-10-18 c
10032 2015-10-23 d
10044 2015-10-30 a
第二DF創建評估今天的日期(恰巧的是2015年10月18日)
active.date=as.data.frame((Sys.Date()))
names(active.date)[1]<-"date"
active.date$date=as.Date(active.date$date)
我敢肯定,有可能是一個稍微乾淨方式爲,但它的作品...
我知道這一點:
match(active.date$date,df1$date)
將返回正確的一行其中有一場比賽,也許是我需要前往做到這一點...
在UI方面,我有:
selectInput("get.id",label="ID NUMBER", setNames(as.list(df1$code),df1$date)),
actionButton("submit", "SUBMIT")
第一值,在下拉列表中顯示只是從數據幀中的第一項:
2015-10-07
我所希望實現的是從下拉列表中返回默認值是在有效日期(今天的例子) 當有一個匹配:
2015-10-18
,並從列表中返回的第一個項目時,有沒有比賽。我仍然希望返回下拉列表中的所有可能值(以便可以選擇所有日期),並且理想情況下,它會保持正確的日期順序以便它們發生。
這是偉大的謝謝!只要我明白髮生了什麼事情,在創建ind時,「FALSE」扮演的角色是什麼?然後,看起來我們正在設置一個新的df1,其中ind首先出現(第6行),然後將數據幀的其餘部分減去第6行? – wetcoaster
是的,沒錯,'match'有一個默認值返回,所以FALSE告訴'match'在沒有匹配的時候返回FALSE(而不是默認的NA) – jenesaisquoi
它在本地運行很好(日期是10月18日) ,但我想shinapps.io服務器位於與我不同的時區。你不會碰巧知道如何改變客戶的時區?嘗試將代碼調整爲.... today < - Sys.Date() - as.difftime(10,unit =「hours」),但是一旦上傳到shinyapps服務器似乎沒有什麼區別。 – wetcoaster