2016-12-15 2 views
0

Я пытаюсь создать выход ggplot, используя R Markdown Shiny Document. Мне нужно, чтобы он отображал данные на основе выбора в выпадающем меню. Мой код:Выбрать Вход в ggplot Shiny dashboard - Ошибка: объект не найден

df<- data.frame(df,out) 
renderRpivotTable({ 
rpivotTable(data = df, rows = c("organisationunitname","X2"), cols = "X1", vals = "value", 
      aggregatorName = "List Unique Values",inclusions = list(organisationunitname=list("All OUs")), 
      rendererName = "Lab Table", width = "100%", height = "500px") }) 

orgunit <- c("Cy3L", "Yieu", "j9ao", "H3LY", "U3nd", 
"qU1l", "jXVh", "dXHb", "tCq8", "Blee", "5jra", "qO2V", "Qa9J", 
"2XIy", "MJpY", "tNKa", "UorU", "7pZt", "Mxsz", "WCkd", "BiDp", 
"Zw8w", "0J7c", "9YtI", "TAkB", "py3Q", "RdQt", "Yhv1", "PB0X", 
"H3L4", "INY7", "DpTW", "3zXP", "OqpO", "tiZU", "5wnz") 

inputPanel(selectInput("OU", label = "Select OU:", choices = orgunit, selected = "All OUs")) 


renderPlot({ 
    df1=reactive({return(df[organisationunitname %in% as.character(input$OU)])}) 
    ggplot(data = df1(),aes(x=X1,y=value))+geom_bar(stat = "identity")+facet_grid(X2~.) 
}) 

Это дает мне эту ошибку: объект 'organisationunitname' не найден Error Message

Мои данные:

structure(list(country = c("Cy3L", "Yieu", "j9ao", "H3LY", "U3nd", 
"qU1l", "jXVh", "dXHb", "tCq8", "Blee", "5jra", "qO2V", "Qa9J", 
"2XIy", "MJpY", "tNKa", "UorU", "7pZt", "Mxsz", "WCkd", "BiDp", 
"Zw8w", "0J7c", "9YtI", "TAkB", "py3Q", "RdQt", "Yhv1", "PB0X", 
"H3L4", "INY7", "DpTW", "3zXP", "OqpO", "tiZU", "5wnz"), cd4_perform_result = structure(c(24L, 
6L, 7L, 1L, 1L, 1L, 5L, 3L, 2L, 1L, 10L, 1L, 2L, 8L, 1L, 2L, 
17L, 1L, 1L, 23L, 12L, 1L, 14L, 11L, 18L, 1L, 21L, 16L, 1L, 22L, 
19L, 4L, 1L, 15L, 20L, 9L), .Label = c("0", "1", "11", "125", 
"130", "14", "15", "194", "24", "261", "27", "31", "3442", "370", 
"4", "5", "51", "567", "577", "73", "76", "79", "796", "9", "end" 
), class = "factor"), cd4_participate_result = c(1, 8, 8, 1, 
1, 1, 5, 3, 2, 1, 7, 1, 2, 9, 1, 2, 17, 1, 1, 18, 12, 1, 4, 15, 
14, 1, 20, 16, 1, 21, 10, 6, 1, 19, 13, 3), cd4_pass_result = c(1, 
4, 19, 1, 1, 1, 5, 3, 2, 1, 21, 1, 2, 20, 1, 2, 13, 1, 1, 14, 
6, 1, 11, 12, 10, 1, 18, 2, 1, 16, 7, 17, 1, 15, 9, 3), eid_perform_result = c(2, 
1, 7, 1, 1, 1, 1, 9, 1, 1, 8, 1, 2, 3, 5, 2, 5, 1, 1, 10, 5, 
1, 4, 2, 11, 1, 5, 1, 1, 5, 9, 2, 1, 1, 9, 5), eid_participate_result = c(2, 
1, 5, 1, 1, 1, 1, 8, 1, 1, 7, 1, 2, 10, 5, 2, 5, 1, 1, 4, 2, 
1, 10, 2, 9, 1, 5, 1, 1, 5, 7, 2, 1, 1, 6, 5), eid_pass_result = c(2, 
1, 5, 1, 1, 1, 1, 7, 1, 1, 6, 1, 2, 10, 1, 2, 5, 1, 1, 4, 2, 
1, 9, 2, 8, 1, 5, 1, 1, 5, 6, 2, 1, 1, 5, 5), vl_perform_result = c(2, 
1, 3, 1, 1, 1, 1, 9, 1, 1, 10, 1, 2, 11, 5, 2, 5, 1, 1, 6, 5, 
1, 8, 7, 6, 1, 12, 1, 1, 5, 9, 2, 1, 1, 8, 5), vl_participate_result = c(2, 
1, 7, 1, 1, 1, 1, 7, 1, 1, 8, 1, 2, 8, 4, 2, 4, 1, 1, 5, 2, 1, 
4, 6, 3, 1, 9, 1, 1, 4, 7, 2, 1, 1, 6, 1), vl_pass_result = c(2, 
1, 7, 1, 1, 1, 1, 7, 1, 1, 9, 1, 2, 8, 1, 2, 5, 1, 1, 4, 2, 1, 
2, 6, 3, 1, 11, 1, 1, 5, 7, 2, 1, 1, 5, 1), hiv_perform_result = c(19, 
29, 14, 1, 1, 1, 26, 21, 10, 1, 6, 11, 9, 7, 20, 27, 8, 15, 1, 
28, 12, 1, 25, 18, 24, 1, 22, 5, 1, 23, 17, 16, 1, 2, 3, 4), 
hiv_participate_result = c(19, 28, 14, 1, 1, 1, 22, 20, 4, 
1, 16, 9, 10, 3, 12, 27, 5, 1, 1, 21, 6, 1, 24, 18, 13, 1, 
25, 8, 1, 23, 15, 17, 1, 2, 26, 7), hiv_pass_result = c(20, 
28, 14, 1, 1, 1, 18, 22, 7, 1, 17, 27, 11, 2, 24, 26, 10, 
1, 1, 15, 4, 1, 21, 19, 12, 1, 23, 8, 1, 16, 13, 9, 1, 3, 
25, 6), tbafb_perform_result = c(9, 1, 8, 1, 1, 1, 1, 7, 
1, 1, 6, 1, 21, 5, 1, 2, 12, 1, 1, 15, 13, 1, 17, 11, 20, 
1, 10, 1, 1, 14, 16, 4, 1, 18, 3, 1), tbafb_participate_result = c(1, 
1, 18, 1, 1, 1, 1, 5, 1, 1, 12, 1, 19, 11, 1, 2, 6, 1, 1, 
13, 7, 1, 10, 9, 14, 1, 8, 1, 1, 16, 15, 4, 1, 18, 3, 1), 
tbafb_pass_result = c(1, 1, 19, 1, 1, 1, 1, 6, 1, 1, 13, 
1, 20, 11, 1, 2, 4, 1, 1, 15, 5, 1, 7, 10, 12, 1, 8, 1, 1, 
16, 9, 3, 1, 14, 18, 1), tbculture_perform_result = c(3, 
1, 2, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 8, 1, 2, 2, 1, 1, 7, 
3, 1, 5, 4, 7, 1, 5, 1, 1, 3, 6, 6, 1, 3, 3, 1), tbculture_participate_result = c(1, 
1, 2, 1, 1, 1, 1, 1, 1, 1, 6, 1, 4, 9, 1, 2, 2, 1, 1, 8, 
2, 1, 7, 5, 7, 1, 1, 1, 1, 4, 4, 6, 1, 4, 4, 1), tbculture_pass_result = c(1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 4, 8, 1, 2, 2, 1, 1, 9, 
2, 1, 7, 5, 6, 1, 1, 1, 1, 4, 4, 7, 1, 4, 4, 1), tbxpert_perform_result = c(1, 
1, 4, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 17, 1, 8, 3, 1, 1, 5, 
9, 1, 16, 7, 13, 1, 4, 1, 1, 12, 11, 1, 1, 6, 14, 10), tbxpert_participate_result = c(1, 
1, 5, 1, 1, 1, 1, 1, 1, 1, 16, 1, 1, 4, 1, 12, 3, 1, 1, 2, 
7, 1, 17, 9, 11, 1, 1, 1, 1, 14, 10, 1, 1, 6, 8, 13), tbxpert_pass_result = c(1, 
1, 2, 1, 1, 1, 1, 1, 1, 1, 13, 1, 1, 4, 1, 9, 3, 1, 1, 15, 
6, 1, 14, 8, 8, 1, 1, 1, 1, 12, 6, 1, 1, 5, 7, 10)), .Names = c("organisationunitname", 
"cd4_perform_result", "cd4_participate_result", "cd4_pass_result", 
"eid_perform_result", "eid_participate_result", "eid_pass_result", 
"vl_perform_result", "vl_participate_result", "vl_pass_result", 
"hiv_perform_result", "hiv_participate_result", "hiv_pass_result", 
"tbafb_perform_result", "tbafb_participate_result", "tbafb_pass_result", 
"tbculture_perform_result", "tbculture_participate_result",   "tbculture_pass_result", 
"tbxpert_perform_result", "tbxpert_participate_result",  "tbxpert_pass_result" 
), row.names = c(NA, 36L), class = "data.frame") 

Я не знаю, почему он не читает "organisationunitname" колонка. Пожалуйста помоги.

+1

Я не думаю, что вы правильно подмножаете свою фреймворк. Попробуйте 'df [df $ organisationunitname% in% ...' – SymbolixAU

ответ

0

Я думаю, ваша ошибка эта строка:

df1=reactive({return(df[organisationunitname %in% as.character(input$OU)])}) 

Изменить это:

df1=df[df$organisationunitname %in% as.character(input$OU),]) 

Вы также неправильное число измерений и reactive здесь не требуется, так как выражение уже в реактивная функция: renderPlot.

+0

Большое спасибо. Но теперь я получаю эту ошибку: Ошибка: не определены выбранные столбцы Не уверен, что я делаю неправильно здесь. –

+0

Попробуйте добавить 'browser()' в начале 'renderPlot'. Затем запустите свой документ, используя 'rmarkdown :: run ('fileName.rmd')'. Это даст вам командную строку R в среде рендеринга. Затем вы можете взглянуть на df1 и убедиться, что у него есть все столбцы, необходимые для вызова ggplot. –

+0

Привет! Я сделал это, и столбец существует в df, но я получаю ту же ошибку: выбраны неопределенные столбцы. Может быть, потому, что этот столбец содержит строковые значения в качестве факторов? –

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