2017-02-14 28 views
0

Я получаю это сообщение об ошибке при выборе в моем первом Блестящем приложении.Ошибка: argumemt не является символьным вектором внутри Блестящего приложения с реактивной переменной

Вот кадр данных образца, который ниже код рисует на:

# generate sample data 
sample_data <- data.frame(
    Device = c("Desktop", "Desktop", "Desktop", "Tablet", "Tablet", "Tablet", "Mobile", "Mobile", "Mobile"), 
    Channel = c("Organic", "Organic", "Organic", "Affiliate", "Affiliate", "Affiliate", "Paid", "Paid", "Paid"), 
    LandingPageGroup = c("Example.Com", "Example.Com", "Example.Com", "AbTest", "AbTest", "AbTest", "Custom", "Custom", "Custom"), 
    Date_Range = seq(as.Date("2017-01-01"), as.Date("2017-01-30"), by = 1), 
    Sessions = ceiling(rnorm(90, mean = 3000, sd = 300)), 
    Registrations = ceiling(rnorm(90, mean = 800, sd = 100)), 
    Conversion1 = ceiling(rnorm(90, mean = 400, sd = 50)), 
    Conversion2 = ceiling(rnorm(90, mean = 20, sd = 7)) 
) 

В ui.RI имеет эту боковую панель с входами:

sidebarLayout(
    ## Sidebar inputs here 
    sidebarPanel(
     selectInput("device", 
        "Device", 
        c("Desktop", "Tablet", "Mobile")), 
     selectInput("channel", 
        "Channel", 
        c("Organic", "Affiliate", "Paid")), 
     selectInput("landing", 
        "Landing Page Group", 
        c("Example.Com", "AbTest", "Custom")) 
    ), 
    ## main panel output here 
    mainPanel(
     # Create a new row for the table. 
     fluidRow(
      DT::dataTableOutput("table") 
     ), 
     br(), br() 
    ) 
) 

Тогда в server.R вот начало мое приложение до кода, который мне кажется релевантным:

(образец данных фрейма, определенный выше, перед функцией (вход, выход))

library(dplyr) 
    sample_txdata <- tbl_df(sample_txdata) 

function(input, output) { 

    # create reactive set of data with filters applied by user 
    filtered <- reactive({ 
    sample_txdata %>% 
     filter(Device == input$device, 
      Channel == input$channel, 
      LandingPageGroup == input$landing 
     ) 
    }) 

output$table <- DT::renderDataTable(DT::datatable({ 
     filtered() %>% {code block that does stuff to the data} 

Приложение работает так, что стол загружается и визуализируется. За исключением случаев, когда я делаю выбор в одном из трех фильтров ввода, я получаю вышеуказанную ошибку, и таблица исчезает. Есть идеи?

ответ

1

Основываясь на данных, которые вы предоставляете, это не блестящая проблема, а проблема с «образцами данных». Отборные входы будут работать, но только для следующих комбинаций:

unique(sample_txdata[, 1:3]) 

Случай 1: Desktop Organic Example.Com по умолчанию вашего выбора входов, что я, почему вы сначала увидеть данные в таблице.

+0

Спасибо за указатель. Я понял, как создать образец кадра данных с уникальными комбинациями всех данных, но проблема сохраняется. Переход к удалению и повторной отправке нового. Спасибо всем тем же –