私はRshinyの初心者ですが、今はダイナミックUIをデザインしようとしています。私のui.Rとserver.Rが添付されています。それはエラーを実行します。これは、異なる年に嵐のデータセットです。ダイナミックUIを作成する方法Rshiny
ui.R
library(shiny)
library(hurricaneexposure)
library(hurricaneexposuredata)
data("hurr_tracks")
storms <- unique(hurr_tracks$storm_id)
storm_years <- as.numeric(gsub(".+-", "", storms))
storms <- storms[storm_years <= 2011]
years <- unique(storm_years)
years <- years[years<=2011]
## Split storm_id based on same year
stm <- split(storms, gsub(".+-", "", storms))
shinyUI(fluidPage(
# Application title
titlePanel("Hurricane"),
sidebarLayout(
sidebarPanel(
selectInput("years",label = "years",years),
# This outputs the dynamic UI component
uiOutput("ui")
),
mainPanel()
)
))
そして
server.R
shinyServer(function(input, output) {
output$ui <- renderUI({
switch (input$years,
"1988"=selectInput("storm_id",label="storm_id",stm$`1988`)
)
})
あなたは、UIの部分で見ることができるように。私は変数 "年"と "stm"を作成します。 「年」には、1988年から2011年までのすべての年が含まれます。「stm」は、年に基づいてストームを分割する分割データセットです。
> head(stm)
$`1988`
[1] "Alberto-1988" "Beryl-1988" "Chris-1988" "Florence-1988" "Gilbert-1988" "Keith-1988"
$`1989`
[1] "Allison-1989" "Chantal-1989" "Hugo-1989" "Jerry-1989"
私の目標は、名前が「年」と「嵐」の2つの「selectInput」を作成することです。私は1989を選択した場合年間のselectInputで 、私は1988年から2011年まで選択することができ、例えば、2番目のselectInputは
"Allison-1989" "Chantal-1989" "Hugo-1989" "Jerry-1989"
ある1989年に唯一の嵐、どれでも良い提案が表示されますか?
私も光っていて新しく、この質問もありました。私がしたことは、あなたの入力の変化(すなわち$ yearの入力)に反応し、それに基づいてデータのサブセットを作成する反応的な要素を作成することです。反応の中でdf [df $ year == input $ years]の行に沿ったもの。 – carlo