创建一个反应性R项,该项将根据用户界面文本框中的选择更改使用数据集中的变量

创建一个反应性R项,该项将根据用户界面文本框中的选择更改使用数据集中的变量,r,shiny,shiny-server,shiny-reactivity,R,Shiny,Shiny Server,Shiny Reactivity,我刚开始使用R Shining,并且已经能够创建一些漂亮的反应文本框来更改显示等 我现在想做一件类似的事情,但是根据文本框中键入的变量,从数据集中读取某个变量 从我的输入数据集pauldata创建包含变量AGE的xvar对象的标准R代码工作正常。然后我可以继续在我的绘图中使用这个变量,不用担心 xvar <- pauldata$AGE 从逻辑上讲,我觉得这会起作用,然后我可以在以前使用xvar的plot语句中使用xvar2(或者x2var()) 如果我试着这样做,那么在我的图中,我会得到

我刚开始使用R Shining,并且已经能够创建一些漂亮的反应文本框来更改显示等

我现在想做一件类似的事情,但是根据文本框中键入的变量,从数据集中读取某个变量

从我的输入数据集
pauldata
创建包含变量
AGE
xvar
对象的标准R代码工作正常。然后我可以继续在我的绘图中使用这个变量,不用担心

xvar <- pauldata$AGE
从逻辑上讲,我觉得这会起作用,然后我可以在以前使用
xvar
的plot语句中使用
xvar2
(或者
x2var()

如果我试着这样做,那么在我的图中,我会得到与y和x的长度不相等相关的错误,因此我认为
xvar2
并没有按照我的预期分配


我假设可以读入数据集,然后从该数据集中选择变量,使其对UI中的条目作出反应?

来自
selectInput的值作为字符向量返回,因此您需要使用
[[
运算符,而不是
$
。此外,输入值也已经是被动的,因此无需使用
被动()

我想这就是你想要实现的目标:

library(shiny)

ui <- fluidPage(

  h1("Everyone's 2nd Favorite Data Set"),
  selectInput("xv", "Select Variable", choices = names(iris[-5])),
  plotOutput("plot")

)

server <- function(input, output, session) {

  output$plot <- renderPlot({
    hist(iris[[input$xv]], xlab = input$xv, main = "")
  })

}

shinyApp(ui, server)
库(闪亮)

ui请尝试提供一个min-reprex,以便我们更好地帮助您。当您尝试使用类似的方法创建过滤现有数据集的新数据集时,我使用的变量就是我要过滤it=Y的所有情况的变量。我认为这种方法会起作用(类似于您建议的方法),但它没有:通过选择where varx=Y pauldata2,这可以正常工作。我想您要问的是,如何让用户选择要筛选的列(
input$sel1
)然后根据此列中的值捕获行的子集,但我在后续操作中遇到了一些问题。如果这回答了您最初的问题,您能将其标记为已回答并创建一个新问题吗?只需在此处发布链接,我很乐意尝试提供帮助(尽管通过添加新问题,您可能也会吸引其他人)
library(shiny)

ui <- fluidPage(

  h1("Everyone's 2nd Favorite Data Set"),
  selectInput("xv", "Select Variable", choices = names(iris[-5])),
  plotOutput("plot")

)

server <- function(input, output, session) {

  output$plot <- renderPlot({
    hist(iris[[input$xv]], xlab = input$xv, main = "")
  })

}

shinyApp(ui, server)