R 使向量成为反应的

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.R和server.R)。在服务器脚本的一开始,我想创建一个向量a,它将用ui脚本中2个selectInputs的输入填充自己

#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'