我在其他问题中也看到过有关如何基于Shiny中的输入来命名列的问题。我试图引用列名以继续对该列执行进一步的操作。
下面的例子很简单,但是本质上我试图在不知道列名是什么的情况下用列来实现某些目的。在实际数据中,还有更多可能的选择。
以下内容创建了一个新列,而不是重新构建我要引用的列。我也尝试了一些似乎很荒谬的score_data$(input$selection)
,但不足为奇的是,它没有运行。
library(shiny)
library(shinydashboard)
sidebar <- dashboardSidebar(
selectInput(
"selection", label = "Select",
choices = c("Harriet", "Louise")
)
)
body <- dashboardBody(
fluidRow(
htmlOutput("table"))
)
ui <- dashboardPage(dashboardHeader(title = "Example"),
sidebar,
body
)
server <- function(input, output) {
output$table <- renderTable({
person_a <- c(95, 60)
Terry <- c(77, 81)
score_data <- data.frame(person_a, Terry)
colnames(score_data)[1] <- input$selection
name <- input$selection
score_data$name <- c(90, 60)
return(score_data)
})
}
shinyApp(ui, server)