2015-01-22 3 views
0

Я хочу создать реактивный фрейм данных с ярким именем реактивного столбца. Однако это бросает ошибку. Я предоставил код ниже .. Ошибка вызвана(), а затем =, но я не могу найти способ. Любая помощь будет оцененаРеактивные имена столбцов в кадрах реактивных данных блестящие

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() 
    }) 
    }) 
+1

Просто из любопытства - зачем вам так много 'reactive' выражения? В вашем примере один комбинированный 'реактивный()' будет просто отлично ... –

+0

На самом деле это часть более крупного кода. Мне пришлось создать небольшой пример. И вы совершенно правы, указывая, что слишком много реактивных выражений. Это была поспешная работа. –

ответ

2

Если я правильно понял вопрос, вам может понадобиться что-то вроде этого:

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

Спасибо. Это отлично сработало –

Смежные вопросы