R 根据用户在UI中的输入创建动态数据框

R 根据用户在UI中的输入创建动态数据框,r,shiny,shinydashboard,R,Shiny,Shinydashboard,我使用可用的训练数据集运行回归模型,比如1000个观察值和5个自变量 现在我想对一个测试数据集运行这个模型。所以我试图从用户界面上手动获取测试数据集。 用户应该可以选择测试数据集中的观察次数,例如50次观察。 一旦用户提供了观察值的数量,用户应该能够查看一个包含50行和自变量的表或任何其他视图。 用户现在应该能够在这50行中为Shining UI上的每个独立变量手动输入任意值 目前,在运行下面的UI代码之后,对于每个变量,我只能从用户那里获取1个观察值 代码: 您好,您想了解如何使用观察和反应。

我使用可用的训练数据集运行回归模型,比如1000个观察值和5个自变量

现在我想对一个测试数据集运行这个模型。所以我试图从用户界面上手动获取测试数据集。 用户应该可以选择测试数据集中的观察次数,例如50次观察。 一旦用户提供了观察值的数量,用户应该能够查看一个包含50行和自变量的表或任何其他视图。 用户现在应该能够在这50行中为Shining UI上的每个独立变量手动输入任意值

目前,在运行下面的UI代码之后,对于每个变量,我只能从用户那里获取1个观察值

代码:


您好,您想了解如何使用观察和反应。简单地说- 当您想要修改某些UI对象或输入,或者通常在后台执行某些操作时,请进行观察。输出的计算最好放在反应式表达式中

我已经修改了你的代码,就像这样它正在运行

library(shiny)
library(randomForest)


ui<-shinyUI(fluidPage(
  titlePanel("Model"),


  sidebarLayout(
    sidebarPanel(
      sliderInput("Var1",label="Variable 1",min=100,max=1000,value=200,step=1),
      sliderInput("Var2",label="Variable 2",min=500,max=800,value=600,step=1),
      sliderInput("Var3",label="Variable 3",min=0,max=1,value=0.5,step=0.01),
      sliderInput("Var4",label="Variable 4",min=1,max=20,value=5,step=1),
      sliderInput("Var5",label="Variable 5",min=0,max=1,value=0.6,step=0.01),
      actionButton("Run_model", "Run model")
    ),

    mainPanel(

      tabsetPanel(
        tabPanel("model summary", verbatimTextOutput('summary'))
      )
    )
  )))


server<- function(input,output,session){
  set.seed(1234)
  test <- reactive({
    # this is how you fetch the input variables from ui component

    Var1 <- as.integer(input$Var1)
    Var2 <- as.integer(input$Var2)
    Var3 <- as.numeric(input$Var3)
    Var4 <- as.integer(input$Var4)
    Var5 <- as.numeric(input$Var4)

    test <- cbind(Var1, Var2, Var3, Var4, Var5)
    test <- as.data.frame(test)


    # Var6 is the dependent variable
    test$Var6 <- ""
    test
    # Model action button
  })
  train <- reactive({
    ## Import dataset
    train <- data.frame(replicate(6,sample(1:100,1000,rep=TRUE)))
    names(train) <- c("Var1", "Var2", "Var3", "Var4", "Var5", "Var6")
    train
  })
  pred <- eventReactive(input$Run_model, {
    model <- randomForest(Var6 ~ .,  data = train(), ntree=500)
    predict(model, newdata = test())

  })
  output$summary <- renderText(pred())
}

shinyApp(ui=ui, server=server)

希望这有帮助

你能不能也提供你的服务器功能,这样我们就可以运行代码了?你的代码中仍然有几个错误阻止我们运行它。仔细检查ui参数中的引号;我们无法访问data.csv;在test@MLavoie中,请您现在检查一下,我已经做了纠正。差不多完成了。但是我们仍然无法访问train@MLavoie,我现在正在代码中创建示例train数据集。你能帮我找到可能的解决办法吗?谢谢你的帮助。干杯
library(shiny)
library(randomForest)


ui<-shinyUI(fluidPage(
  titlePanel("Model"),


  sidebarLayout(
    sidebarPanel(
      sliderInput("Var1",label="Variable 1",min=100,max=1000,value=200,step=1),
      sliderInput("Var2",label="Variable 2",min=500,max=800,value=600,step=1),
      sliderInput("Var3",label="Variable 3",min=0,max=1,value=0.5,step=0.01),
      sliderInput("Var4",label="Variable 4",min=1,max=20,value=5,step=1),
      sliderInput("Var5",label="Variable 5",min=0,max=1,value=0.6,step=0.01),
      actionButton("Run_model", "Run model")
    ),

    mainPanel(

      tabsetPanel(
        tabPanel("model summary", verbatimTextOutput('summary'))
      )
    )
  )))


server<- function(input,output,session){
  set.seed(1234)
  test <- reactive({
    # this is how you fetch the input variables from ui component

    Var1 <- as.integer(input$Var1)
    Var2 <- as.integer(input$Var2)
    Var3 <- as.numeric(input$Var3)
    Var4 <- as.integer(input$Var4)
    Var5 <- as.numeric(input$Var4)

    test <- cbind(Var1, Var2, Var3, Var4, Var5)
    test <- as.data.frame(test)


    # Var6 is the dependent variable
    test$Var6 <- ""
    test
    # Model action button
  })
  train <- reactive({
    ## Import dataset
    train <- data.frame(replicate(6,sample(1:100,1000,rep=TRUE)))
    names(train) <- c("Var1", "Var2", "Var3", "Var4", "Var5", "Var6")
    train
  })
  pred <- eventReactive(input$Run_model, {
    model <- randomForest(Var6 ~ .,  data = train(), ntree=500)
    predict(model, newdata = test())

  })
  output$summary <- renderText(pred())
}

shinyApp(ui=ui, server=server)