0
例:他のobserveEventからdataframeにアクセスする方法は?
UI.R
library(shiny)
shinyUI(fluidPage(
titlePanel("Example"),
sidebarLayout(
sidebarPanel(
radioButtons("orderdata", "Sort by :",
c("Name" = "name",
"MRDNo" = "mrdno"
))
),
mainPanel(
uiOutput("deatilscv")
)
)
))
Server.R
library(shiny)
library(shinyjs)
shinyServer(function(input, output) {
observeEvent(input$orderdata,
{
output$deatilscv <- renderUI({
if(input$orderdata=="name")
{
mid<-c("1","2")
name<-c("a","b")
datatable1 <- data.frame(mid,name)
fluidPage(shinyjs::useShinyjs(),
actionButton("button1", "CLICK") )
}
else if(input$orderdata=="mrdno")
{
mid<-c("3","4")
name<-c("c","d")
datatable2 <- data.frame(mid,name)
fluidPage(shinyjs::useShinyjs(),
actionButton("button1", "CLICK") )
}
})
})
observeEvent(
input$button1,{
a <- datatable1[1,2] #this shows an error object 'datatable1' not found
print(a)
})
observeEvent(
input$button2,{
a <- datatable2[1,2] #this shows an error object 'datatable2' not found
print(a)
})
})
のDataTableを観察するイベントにアクセスすることができますabove.How示すように、プログラム中の2個のエラーがありますか?
あなたのデータは 'observeEvent'関数で定義されています...そのため、ボタン関数内ではわかりません。データをグローバルに、または 'shinyServer'の中に直接定義します。 – drmariod
Sirですが、datatable1とdatatable2をラジオボタンをクリックしたときにのみdataframeに割り当てる必要があります。そのため、observeEventにデータを入れています。 – Rad
http://shiny.rstudio.com/tutorial/lesson6/ここのような反応式に精通してください。ラジオボタンの選択に基づいてデータを更新する方法と、他の関数でデータを使用する方法 – drmariod