在ggplot Shiny仪表板中选择输入 - 错误:找不到对象

时间:2016-12-15 23:24:00

标签: r ggplot2 shiny rstudio shinydashboard

我正在尝试使用R Markdown Shiny Document创建ggplot输出。我需要它根据下拉菜单中的选择来绘制数据。我的代码:

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 个答案:

答案 0 :(得分:0)

我认为你的错误是这一行:

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

将其更改为:

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

您的维度数也不正确,此处不需要reactive,因为表达式已经处于被动函数中:renderPlot