如何从R中的闪亮应用程序动态更改图表?

时间:2016-07-23 20:27:10

标签: r shiny

我有一个data.frame,其中包含4列7行。下面是示例数据(列名称为大写,数据为小写)。

示例数据:

NAME.  COUNT  MONTH COUNTRY
ram       20. jan   India
ranjith   40.  jan   India
azhar     80.  feb   India
chris     20   feb   US
rakesh    60.  jan   US
mano.     90.  mar.   UK
Ron.       37.  mar.  uk

所以在ui.R我创建了两个selectinputs。一个是COUNTRY列,另一个是MONTH列。

当我选择第一个selectinput作为印度,第二个选择输入为jan时,首先应在闪亮的应用中显示两行 作为x轴(即水平)的名称和y轴(即垂直)的COUNT,带条形图。

如果我在第一次选择输入中选择印度,然后在第二次选择输入中选择2月。现在只需要出现第三行,并提到x轴和y轴。同时,也需要为其他行生成结果。

如果选择COUNTRYUKMONTH被选为jan,则不应创建图表。因为我们没有英国和Jan组合的记录。

任何人都可以分享ui.Rserver.R的代码吗?

1 个答案:

答案 0 :(得分:0)

根据你所拥有的,你已经非常接近你想要的了。只需要reactive函数动态捕获输入中的值并相应地渲染输出:

<强> ui.R

require(shiny) 
shinyUI(fluidPage( 
    titlePanel("sample data"), 
    sidebarPanel( 
        selectInput("COUNTRY", "select country", choices=c("India","US", "UK"), selected ="India"), 
        radioButtons("MONTH","select MONTH", choices=c("jan","feb"))
        ), 
    mainPanel(plotOutput("plot")) 
    ) 
    )

<强> server.R

function(input, output){ 
    country = reactive({input$COUNTRY})          # <<<<<<<<<<< 
    month = reactive({input$MONTH})              # <<<<<<<<<<< 

    output$plot <- renderPlot({ 
        CHART_IP_JOB_FAILURE <- subset(final1, COUNTRY == country() & MONTH == month() & COUNT > 0)
        H <- CHART_IP_JOB_FAILURE[,"COUNT"] 
        M <- CHART_IP_JOB_FAILURE[,"NAME"] 
        barplot(as.numeric(H),names.arg = M,xlab = "NAMES",ylab = "COUNT",col = "blue", main = "TOP 5 JOB FAILURES",border = "red") 
    }) 
}

作为资源,shiny cheat sheet可能会有所帮助。

相关问题