R Shiny 访问动态输入
R Shiny accessing a dynamic input
我是 shiny 的新手,我已经坚持了很长一段时间,到目前为止我尝试和阅读的东西都没有结果。我有一个下拉列表,用户将在其中选择一个问题,然后根据问题,下拉列表将填充响应编号。用户选择响应编号后,将绘制地图。我已经完成了动态下拉列表,完成了。但是我无法访问第二个用户输入,即响应编号,因此我可以相应地 select 我的地图数据。我觉得这真的很简单我不知道为什么这不起作用。我收到此错误:
Error in .getReactiveEnvironment()$currentContext() : Operation not
allowed without an active reactive context. (You tried to do something
that can only be done from inside a reactive expression or observer.)
我的代码如下,暂时放在特殊情况下,以后会扩展到一般情况,有列表。
library(shiny)
runApp(list(
ui = shinyUI(pageWithSidebar(
headerPanel('Dialect Comparison'),
sidebarPanel(
selectInput('Question', 'Choose The Question', c('100. Do you cut or mow the lawn or grass?'='Q100',
'101. Do you pass in homework or hand in homework?'='Q101')),
uiOutput('C')
),
mainPanel(
plotOutput('plot')
)
)
),
server = function(input, output){
output$C = renderUI({
ques = input$Question
selectInput('Choice', 'Choose The Response', seq(0,max(ling_data[,ques])))
})
##########
#The Data#
##########
#text = renderPrint({'uhu'})
#print(text()) #THIS WORKS
choice_number = renderPrint({input$Choice}) #http://shiny.rstudio.com/gallery/dynamic-ui.html
print(choice_number()) #it fails here
...
})
}
))
反应变量,包括输入,只能在使用以下之一创建的反应作用域中访问:
shiny::reactive
, shiny::eventReactive
shiny::observe
、shiny::observeEvent
shiny::render*
或在 shiny::isolate
块内。
对于诸如日志记录之类的操作,您可能需要 observe
块:
observe({print(choice_number())})
我是 shiny 的新手,我已经坚持了很长一段时间,到目前为止我尝试和阅读的东西都没有结果。我有一个下拉列表,用户将在其中选择一个问题,然后根据问题,下拉列表将填充响应编号。用户选择响应编号后,将绘制地图。我已经完成了动态下拉列表,完成了。但是我无法访问第二个用户输入,即响应编号,因此我可以相应地 select 我的地图数据。我觉得这真的很简单我不知道为什么这不起作用。我收到此错误:
Error in .getReactiveEnvironment()$currentContext() : Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
我的代码如下,暂时放在特殊情况下,以后会扩展到一般情况,有列表。
library(shiny)
runApp(list(
ui = shinyUI(pageWithSidebar(
headerPanel('Dialect Comparison'),
sidebarPanel(
selectInput('Question', 'Choose The Question', c('100. Do you cut or mow the lawn or grass?'='Q100',
'101. Do you pass in homework or hand in homework?'='Q101')),
uiOutput('C')
),
mainPanel(
plotOutput('plot')
)
)
),
server = function(input, output){
output$C = renderUI({
ques = input$Question
selectInput('Choice', 'Choose The Response', seq(0,max(ling_data[,ques])))
})
##########
#The Data#
##########
#text = renderPrint({'uhu'})
#print(text()) #THIS WORKS
choice_number = renderPrint({input$Choice}) #http://shiny.rstudio.com/gallery/dynamic-ui.html
print(choice_number()) #it fails here
...
})
}
))
反应变量,包括输入,只能在使用以下之一创建的反应作用域中访问:
shiny::reactive
,shiny::eventReactive
shiny::observe
、shiny::observeEvent
shiny::render*
或在 shiny::isolate
块内。
对于诸如日志记录之类的操作,您可能需要 observe
块:
observe({print(choice_number())})