R 使向量成为反应的
我事先为没有一个最小的可复制的例子而道歉。我试着做了一个,但没能重现错误 所以我在同一个文件夹中有两个脚本(ui.R和server.R)。在服务器脚本的一开始,我想创建一个向量a,它将用ui脚本中2个selectInputs的输入填充自己R 使向量成为反应的,r,shiny,R,Shiny,我事先为没有一个最小的可复制的例子而道歉。我试着做了一个,但没能重现错误 所以我在同一个文件夹中有两个脚本(ui.R和server.R)。在服务器脚本的一开始,我想创建一个向量a,它将用ui脚本中2个selectInputs的输入填充自己 #ui shinyUI(fluidPage( fluidRow( column(selectInput(inputId = "input1", label = "This is input 1",
#ui
shinyUI(fluidPage(
fluidRow(
column(selectInput(inputId = "input1",
label = "This is input 1",
choices = c("bad","neutral","good"))
column(selectInput(inputId = "input2",
label = "This is input 2",
choices = c("bad","neutral","good"))
#server
shinyServer(function(input, output) {
a <- c(input$input1, input$input2)
})
b <- b[a]
所以我意识到我必须使这个向量以某种方式反应,但我不知道如何反应。我尝试使用功能反应式:
#server
shinyServer(function(input, output) {
a <- reactive({
c(input$input1, input$input2)
})
})
要获取向量,请执行a()
,但实际上无法从server.R
中判断您在哪里使用它。您发布的关于在被动语句中分配向量的方法是正确的。然而,您只能在另一个被动/观察/渲染环境中调用它,当您这样做时,您必须像一个没有参数的函数一样调用它,正如NicE在他的评论中所示。如果你想制作闪亮的应用程序,我绝对认为你应该在这里学习闪亮的教程,这是一个很棒的教程,绝对值得在我看来学习整个过程。这个教程看起来确实值得一看,但问题是,我现在的处境更为特殊:我制作了一个脚本,想添加一些非常基本的交互元素。我的时间有点短,用一种好的方式学习shiny需要(太多)时间。不过还是谢谢你的回答。@NicE,我更新了脚本。几行之后,我使用由输入组成的向量A来索引另一个(非反应性)向量b,这是我之前已经拥有的。请在更新中尝试b[A()]
,使用A的反应性语句来获取向量,执行A()
,从服务器上看不出您在哪里使用它。R
您发布的关于在被动语句中分配它的方法是正确的。然而,您只能在另一个被动/观察/渲染环境中调用它,当您这样做时,您必须像一个没有参数的函数一样调用它,正如NicE在他的评论中所示。如果你想制作闪亮的应用程序,我绝对认为你应该在这里学习闪亮的教程,这是一个很棒的教程,绝对值得在我看来学习整个过程。这个教程看起来确实值得一看,但问题是,我现在的处境更为特殊:我制作了一个脚本,想添加一些非常基本的交互元素。我的时间有点短,用一种好的方式学习shiny需要(太多)时间。不过还是谢谢你的回答。@NicE,我更新了脚本。几行之后,我使用由输入组成的向量A来索引另一个(非反应性)向量b,这是我之前已经拥有的。请在更新中尝试b[A()]
,对上面的A使用反应性语句
#server
shinyServer(function(input, output) {
a <- reactive({
c(input$input1, input$input2)
})
})
invalid subscript type 'closure'