Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从中的输入创建数据帧_R_Shiny - Fatal编程技术网

R 从中的输入创建数据帧

R 从中的输入创建数据帧,r,shiny,R,Shiny,我正在尝试创建一个shinny应用程序,我可以在侧栏面板中输入数据,在第二个名为table的选项卡面板上创建一个数据框。我可以有一行数据,但当我按下提交按钮时,它会刷新这些数据,而不是添加另一行。非常感谢你的帮助 这是我的密码: library(shiny) library(ggplot2) ui <- fluidPage( titlePanel("Team"), tags$img(height = 100, width = 100,

我正在尝试创建一个shinny应用程序,我可以在侧栏面板中输入数据,在第二个名为table的选项卡面板上创建一个数据框。我可以有一行数据,但当我按下提交按钮时,它会刷新这些数据,而不是添加另一行。非常感谢你的帮助

这是我的密码:

library(shiny)
library(ggplot2)


ui <- fluidPage(
  titlePanel("Team"),
  tags$img(height = 100, width = 100,
           src = "Logo"),
    sidebarPanel(
    textInput(inputId = "date",
            label = "Date", 
            value = "yyyy/mm/dd"),
  textInput(inputId = "team",
            label = "Team Name", 
            value = "Team Name"),
  textInput(inputId = "pnumber",
            label = "Player Number", 
            value = "#"),
  selectInput("shot", "shot type:",
              list(`Shot Type` = list("wrist shot", "slap shot", "snap shot"))),
  selectInput("situation", "scoring opportunity:",
              list(`Green` = list("Double cross", "dot line pass"),
                   `Yellow` = list("2vs1", "same side quick"),
                   `Red` = list("clear", "wrap"))),
  submitButton("Add")),
  
  mainPanel(tabsetPanel(
            tabPanel("Track", plotOutput(outputId = "hockeyplot")),
            tabPanel("Data", tableOutput(outputId = "table")),
            tabPanel("Chart", plotOutput(outputId = "chart")))),)
  

server <- function(input, output){
  Reactive_Var<-reactive({
    results=data.frame(Date = input$date, Team = input$team, Player = input$pnumber, ShotType = input$shot, Situation = input$situation)})
  observeEvent(input$Add, {df<- data.frame(Date = input$date, Team = input$team, Player = input$pnumber, ShotType = input$shot, Situation = input$situation)})
  output$table<-renderTable({
    Reactive_Var()
  })
  
}

shinyApp(ui = ui, server = server)
```
库(闪亮)
图书馆(GG2)
ui这里有一种方法:

首先,将使用
操作按钮
而不是
提交按钮
(这通常更可取)。有关使用操作按钮的更多信息,请参阅

其次,您可以创建一个存储在
reactiveValues
中的空数据帧(默认值)。选择“添加”按钮后,将使用
rbind
向该数据框添加一行新数据

然后,
renderable
将显示更新的
reactiveValues
数据帧

library(shiny)
library(ggplot2)

ui <- fluidPage(
  titlePanel("Team"),
  tags$img(height = 100, width = 100,
           src = "Logo"),
  sidebarPanel(
    textInput(inputId = "date",
              label = "Date", 
              value = "yyyy/mm/dd"),
    textInput(inputId = "team",
              label = "Team Name", 
              value = "Team Name"),
    textInput(inputId = "pnumber",
              label = "Player Number", 
              value = "#"),
    selectInput("shot", "shot type:",
                list(`Shot Type` = list("wrist shot", "slap shot", "snap shot"))),
    selectInput("situation", "scoring opportunity:",
                list(`Green` = list("Double cross", "dot line pass"),
                     `Yellow` = list("2vs1", "same side quick"),
                     `Red` = list("clear", "wrap"))),
    actionButton("Add", "Add")),
  
  mainPanel(tabsetPanel(
    tabPanel("Track", plotOutput(outputId = "hockeyplot")),
    tabPanel("Data", tableOutput(outputId = "table")),
    tabPanel("Chart", plotOutput(outputId = "chart")))))


server <- function(input, output){
  
  rv <- reactiveValues(
    df = data.frame(
      Date = as.Date(character()),
      Team = character(),
      Player = character(),
      ShotType = character(),
      Situation = character()
    )
  )
  
  observeEvent(input$Add, {
    rv$df <- rbind(rv$df, data.frame(Date = input$date, 
                                     Team = input$team, 
                                     Player = input$pnumber, 
                                     ShotType = input$shot, 
                                     Situation = input$situation))
  })
  
  output$table<-renderTable({
    rv$df
  })
  
}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(GG2)
用户界面