可以根据2个条件在反应函数内对数据进行子集,然后使用ggplotly

时间:2019-07-16 00:42:27

标签: r ggplot2 shiny reactive-programming ggplotly

我想基于放在一列上的两个条件在反应函数中将数据帧子集化,然后绘制数据。一种基于用户输入(从下拉菜单中选择),另一种基于观察值。

我有一列,其中包含位置-州选民,州和国家。可以从下拉菜单中选择州选民名称,但是我也总是希望选择州和国家人物。因此,州选民根据用户输入,然后将州和国民作为常量保留在子集中,以进行比较。

然后我将使用ggplot / ggplotly将数据绘制在成组的条形图中,以便基于状态的用户输入来更改状态条,而无论从下拉列表中选择哪个州选民,国家条保持不变菜单。 enter image description here

我尝试创建两个单独的反应式功能,一个用于从下拉菜单中根据用户输入选择州选举人,然后一个用于选择州和国家/地区数字。然后,我尝试在图中绘制两个单独的geom_bar / geom_col参数,以绘制两个单独的反应函数,但这没有用。然后,我尝试添加&和|对反应功能的声明,但这也没有用。请帮忙。

enter image description here 我想根据SED_NAME18列作为子集,该列包含所有州选民以及州和国家(昆士兰州和澳大利亚)。

2个单独的反应功能-然后尝试使用ggplot并排绘制-同一图中2个单独的geom_bar / geom_col拼合-没用

第一个反应功能:仅根据用户输入选择状态选民以下拉菜单并创建百分比

df_age_reactive<-reactive ({
    c<-subset(df.age, SED_NAME18==input$division_input3)%>% #subset based on used input
      mutate(pop_total = sum(value))%>%
      group_by(SED_NAME18,variable2) %>% 
      #arrange(variable3) %>%
      mutate(pct_value = value / pop_total*100)%>%
      mutate(pos_scaled = cumsum(pct_value) - pct_value / 2,
             perc_text = paste0(round(pct_value, digits = 2), "%"))
    return(c)
  })

第二反应功能:选择州和国家级数据并创建百分比

df_age_comp<-reactive ({
    d<-df.age[df.age$SED_NAME18 %in% c("Queensland" & "Australia"),]%>% 
    mutate(pop_total = sum(value))%>%
    group_by(SED_NAME18,variable2) %>% 
    #arrange(variable3) %>%
    mutate(pct_value = value / pop_total*100)%>%
    mutate(pos_scaled = cumsum(pct_value) - pct_value / 2,
           perc_text = paste0(round(pct_value, digits = 2), "%"))
    return(d)
  })

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~

尝试使用多种条件的创意功能

df_age_reactive<-reactive ({
    c<-subset(df.age, SED_NAME18==input$division_input3 & SED_NAME18 = "Queensland")%>% #subset based on used input
      mutate(pop_total = sum(value))%>%
      group_by(SED_NAME18,variable2) %>% 
      #arrange(variable3) %>%
      mutate(pct_value = value / pop_total*100)%>%
      mutate(pos_scaled = cumsum(pct_value) - pct_value / 2,
             perc_text = paste0(round(pct_value, digits = 2), "%"))
    return(c)
  })

我想要一个分组的条形图,其中州选举人级别的条根据用户输入进行调整,但是州和国家的条始终保持不变。

0 个答案:

没有答案