R 被动数据框中的被动列名

R 被动数据框中的被动列名,r,shiny,R,Shiny,我想创建一个反应性数据框,其中包含一个反应性列名。然而,这是一个抛出错误。我已经提供了下面的代码。。该错误是由()后跟=,但我找不到解决方法。任何帮助都将不胜感激 ui.R library(shiny) shinyUI(fluidPage( titlePanel("Tool"), sidebarLayout( sidebarPanel( textInput("Item","Enter Item Name"), div(class='row-fluid',

我想创建一个反应性数据框,其中包含一个反应性列名。然而,这是一个抛出错误。我已经提供了下面的代码。。该错误是由()后跟=,但我找不到解决方法。任何帮助都将不胜感激

ui.R

library(shiny)
shinyUI(fluidPage(
  titlePanel("Tool"),
  sidebarLayout(
    sidebarPanel(
      textInput("Item","Enter Item Name"),
      div(class='row-fluid',
          div(class='span6', numericInput("sales1","Enter Sales",value=0),numericInput("sales2","Enter Sales",value=0)),
          div(class='span6', numericInput("prices1","Enter price",value=0),numericInput("prices2","Enter price",value=0))
      )),
    mainPanel(
      dataTableOutput("table")
      )
  )
  ))

server.R

library(shiny)
shinyServer(function(input, output) {
  prices<-reactive({
    c(input$prices1,input$prices2)
  })
  sales<-reactive({
    c(input$sales1,input$sales2)
  })
  combined<-reactive({
    data.frame(prices(),sales())
  })
  combined_final<-reactive({
    mutate(combined(),Rev=prices()*sales())
  })
  namerev<-reactive({
    as.character(paste("Rev",input$Item,sep="_"))
  })
  combined_final_rename<-reactive({
    rename_(combined_final(),namerev() ="Rev")
  })
  output$table<-renderDataTable({
    combined_final_rename()
  })
  })
ui.R
图书馆(闪亮)
shinyUI(fluidPage)(
标题板(“工具”),
侧边栏布局(
侧栏面板(
textInput(“项目”,“输入项目名称”),
分区(class='row-fluid',
div(class='span6',数值输入(“sales1”,“输入Sales”,值=0),数值输入(“sales2”,“输入Sales”,值=0)),
div(class='span6',数值输入(“价格1”,“输入价格”,值=0),数值输入(“价格2”,“输入价格”,值=0))
)),
主面板(
dataTableOutput(“表”)
)
)
))
服务器.R
图书馆(闪亮)
shinyServer(功能(输入、输出){

价格如果我正确理解了这个问题,您可能需要这样的东西:

  combined_final_rename<-reactive({
    d <- combined_final()
    colnames(d)[colnames(d)=='Rev'] <- namerev()
    d
  })

combined\u final\u rename只是出于好奇——为什么需要这么多
reactive
表达式?在您的示例中,一个是combined
reactive()
很好……实际上,这是一个较大代码的一部分。我必须创建一个小示例。您完全正确地指出,反应式表达式太多了。这是一个仓促的工作。