设置反应矩阵时分配的错误(NULL)左侧

时间:2019-03-31 14:28:24

标签: r shiny

在开发我的第一个Shiny App时,我一直在努力解决问题。 我有2个滑块的应用程序。用户可以从其中一个称为“ probability_threshold”的值中选择一个值,我稍后将使用该值对数据帧进行子集化。然后,创建一个矩阵,该矩阵具有与该子集相同的行数,并且我想用子集的“得分”列填充该矩阵的第一列。 然后,我将遍历矩阵列以完全填充矩阵。 但是,当我尝试将“得分”列分配给矩阵的第一列时,出现以下错误消息:

Error in individual_ltv_pa()[, 1] <- reactive({ : 
  invalid (NULL) left side of assignment

这是我的代码:

first_pct <- read.csv('first_pct.csv')
results <- read.csv('results.csv')
num_period <- length(first_pct)

library(shiny)
library(dplyr)

# Define UI for application 
ui <- fluidPage(

   # Application title
   titlePanel("Switching to PA campaign results"),

   # Sidebar with a slider input for number of bins 
   sidebarLayout(
      sidebarPanel(
         sliderInput("probability_threshold",
                     "Sensitivity",
                     min = 0,
                     max = 1,
                     value = 0.7),
         sliderInput("discount_rate",
                     label = 'Discount rate',
                     min = 0,
                     max = 1,
                     value = 0.1)
      ),

      # Show a plot of the generated distribution
      mainPanel(
         tabsetPanel(
           tabPanel('Discounted Cumulated Revenues'),
           tabPanel('Discounted Yearly Revenues'),
           tabPanel('Data')
         )
      )
   )
)

# Define server 
server <- function(input, output) {
    gonna_switch <- reactive({
      results[results$prob >= input$probability_threshold, c('contact_id', 'score')]
    })

    individual_ltv_pa <- reactive({
      matrix(nrow = nrow(gonna_switch()), ncol = 13)
    })

    individual_ltv_pa()[, 1] <- reactive({ gonna_switch()$score })




}

# Run the application 
shinyApp(ui = ui, server = server)

我对自己的分析感到高兴,此应用程序非常适合将其呈现给其他人,因此我真的想修复它。

非常感谢您的帮助!

0 个答案:

没有答案