基于多种因素的条件标签的成对条形图

时间:2018-05-24 15:27:45

标签: r ggplot2 tidyverse purrr mutate

我正在尝试为下面的数据样本创建如下图所示的图形输出,但我包含的代码会出错:

  

mutate_impl(.data,dots)出错:评估错误:列n的长度必须为43(行数)或一,而不是42.

我的目标是在同一图表上绘制同一位置的所有提供者,然后在轴上只包含一个名称,以便每个提供者可以看到他们与其他区域中的其他人进行比较,而不会泄露其他提供者的身份。我已经尝试指定n = 43(完整数据集的长度),但没有取得任何成功。此外,我想做一个配对的条形图,以显示每个提供商如何比较他们之前的几个月'率。 enter image description here

  Provider  Month   Payment Location
    Andrew  2   32.62   OH
    Dillard 2   40  OH
    Henry   2   32.28   OH
    Lewis   2   47.79   IL
    Marcus  2   73.04   IL
    Matthews    2   45.22   NY
    Paul    2   65.73   NY
    Reed    2   27.67   NY
    Andrew  1   33.23   OH
    Dillard 1   36.63   OH
    Henry   1   42.68   OH
    Lewis   1   71.45   IL
    Marcus  1   39.51   IL
    Matthews    1   59.11   NY
    Paul    1   27.67   NY
    Reed    1   28.78   NY

library(tidyverse)
    library(purrr)
    df <- 1:nrow(PaymentsFeb) %>% 
         purrr::map( ~PaymentsFeb) %>% 
         set_names(PaymentsFeb$Provider) %>% 
         bind_rows(.id = "ID") %>% 
         nest(-ID) %>%  

     mutate(Location=map2(data,ID, ~.x %>% filter(Provider == .y) %>% select(Location))) %>% 
     mutate(data=
           map2(data, ID, ~.x %>% 
                  mutate(n=paste0("#", sample(seq_len(n()), size = n())),
                         Provider=ifelse(Provider == .y, as.character(Provider), n),
                         Provider=factor(Provider, levels = c(.y, sample(n, n())))))) %>%
     mutate(plots=map2(data,Location, ~ggplot(data=.x,aes(x = Provider, y = scores, fill = scores))+ 
               geom_col() +geom_text(aes(label=Per.Visit.Bill.Rate), vjust=-.3)+
               ggtitle("test scores by Location-  February 2018", subtitle = .y$Location)
     )) 

0 个答案:

没有答案