【发布时间】:2018-04-10 19:05:28
【问题描述】:
我想在 UI 中有一个输出表,它有一个基于“第 3 列”文本的条件列总和。
这是我的示例代码:
library(shiny)
runApp(list(
ui=pageWithSidebar(headerPanel("Adding entries to table"),
sidebarPanel(textInput("text1", "Column 1", "66"),
textInput("text2", "Column 2", "100"),
textInput("text3", "Column 3", "Tony"),
actionButton("update", "Update Table")),
mainPanel(tableOutput("table1"))),
server=function(input, output, session) {
values <- reactiveValues()
values$df <- data.frame(Column3 = character(),
Column1 = numeric(0),
Column2 = numeric(0),
stringsAsFactors = FALSE)
newEntry <- observe({
if(input$update > 0) {
newLine <- isolate(c(input$text3, input$text1, input$text2))
isolate(values$df[nrow(values$df) + 1,] <- c(input$text3,
input$text1, input$text2))
}
})
output$table1 <- renderTable({values$df})
}))
如果你点击“更新表”按钮两次,我想看到的输出表是:
`1 Tony 132 200`
“第 3 列”中的名称会有所不同,具体取决于侧边栏中的输入值。输出表应该观察到这一点,然后返回该名称下所有“Column 1”之和和“Column 2”之和的名称。
我尝试使用values$df 上的聚合函数创建一个新的数据框,但它不起作用。
【问题讨论】: