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