データフレームをデータテーブルとして表示するアプリケーションを構築しようとしています。サイドバーパネルでselectinputとdaterange入力フィルタを使ってデータテーブルをサブセット化する機能をユーザに提供したいと思っていました。相続人R Filterinputsが変更されるまでフィルタ入力がない状態でShiny display full dataframe
私が問題に遭遇し、
- それだけで、すべての入力が
- を選択されたときの入力のいずれかが変更されたときに、アプリ
- のロードに空データテーブルを表示するデータテーブルのサブセットそれは datatableを更新しません。ここで
は、光沢のあるアプリのための私のサンプルコードです
Region <- c("USA","UK","JPN","JPN","UK","USA","USA")
Company <- c("A","B","C","A","B","C","A")
Status <- c("Completed","In Production","In Design","New","In Production","In Design","New")
date <- c("2015-05-01","2015-05-01","2015-06-04","2015-06-20","2015-07-15","2015-08-12","2015-08-12")
date <- as.Date(date,"%Y-%m-%d")
df <- data.frame(Region, Company, Status, date)
UIファイルはアプリがそうでない起動するとサーバーのファイルが
server.R
shinyServer(function(input,output){
output$table <- renderTable({
datadf %>% as.data.frame() %>% filter(Region == input$region & Company == input$company & Status == input$status)
})
})
ある
ui.R
shinyUI(
fluidPage(
titlePanel("Summary"),
sidebarLayout(
sidebarPanel(
selectInput("region",
label = "Choose a Region",
choices = c("", unique(df$Region))),
selectInput("company",
label = "Choose a company",
choices = c("", unique(df$Company))),
selectInput("status",
label = "Choose Proj status",
choices = c("", unique(df$Status))),
dateRangeInput("projdate",
label = "Date of interest:",
start = Sys.Date() - 60,
end = Sys.Date())
),
mainPanel(
dataTableOutput("table")
)
)
))
ですフィルタを適用せずにテーブルを表示します。 私が望む出力を得るために、出力$ table関数のすべてを実行しているかどうかはわかりません。
ユーザー入力がなくてもどのようにデータテーブルを表示し、ユーザー入力が変更されたときにデータテーブル更新がどのように表示されるか教えてくれたら、
反応的な環境で入力要因を配置しようとしましたが、反応的なコンテキストがないと操作が許可されませんでした。
フィルタを 'filter(%%in selection)'に変更する必要があります。ここで、 'selection'は何も選択されていない場合のすべてのオプションのベクトルです。 –
「selection = c(input $ Region、$ companyを入力し、$ Statusを入力してください)」のように入力すると、入力の1つが選択された場合、それらの入力に一致するデータテーブルが表示されますか?ありがとう – user6529266
まだ複数のフィルタが必要ですが、何も選択されていない場合、すべてのオプションが選択されていると仮定する必要があります。たとえば、領域が選択されていない場合、 'selection'はすべての領域のベクトルでなければなりません。それ以外の場合は、空の結果が得られます。 –