Висячий барный сюжет от dplyr - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь выяснить, как создать висячую гистограмму из dplyr.

Я использовал dplyr следующим образом:

table4 <- cr %>%
  group_by(samp.N, RSQ) %>%
  summarize(
    MRB_uc = mean(CF.F1F2/0.40*100)-100,
    MRB_sb = mean(SBC.F1F2.Alpha/0.40*100) - 100,
    MRB_bp = mean(BPC.F1F2.Alpha/0.40*100) - 100
  )

, что дает мне это:

   samp.N   RSQ MRB_uc MRB_sb MRB_bp
 1     50   0.3   1.42  37.6   37.6 
 2     50   0.4   8.61  43.1   43.1 
 3     50   0.5   7.41  31.6   31.6 
 4     50   0.6   5.06  21.5   21.5 
 5     50   0.7   3.38  14.1   14.1 
 6     50   0.8  -1.07   5.16   5.16
 7    100   0.3  -6.41  40.3   40.3 
 8    100   0.4 -10.6   21.0   21.0 
 9    100   0.5  -9.02  13.2   13.2 
10    100   0.6  -9.85   5.14   5.14
11    100   0.7  -7.94   2.08   2.08
12    100   0.8  -4.81   1.28   1.28

Что я хочу сделать, это создать висячую гистограмму сОсь X - это значение samp.N по значению RSQ.Столбцы представляют собой значения MRB_uc, MRB_sb и MRB_bp.Учитывая, что некоторые значения являются отрицательными, некоторые столбцы будут выше нуля, а другие ниже (отсюда и график висячих столбцов)

У меня пока нет кода, так как я совершенно не знаю, как это сделать.Будем очень благодарны за любые предложения.

1 Ответ

0 голосов
/ 20 апреля 2019

Спасибо постеру в рассылке r-help за ответ, который я искал.

library(ggplot2)
library(dplyr)
library(tidyr)

dta <- read.table( text =
                     "samp.N   RSQ    MRB_uc  MRB_sb  MRB_bp
                   50      0.3      1.42    37.6   37.6
                   50      0.4      8.61    43.1   43.1
                   50      0.5      7.41    31.6   31.6
                   50      0.6      5.06    21.5   21.5
                   50      0.7      3.38    14.1   14.1
                   50      0.8     -1.07    5.16   5.16
                   100      0.3     -6.41    40.3   40.3
                   100      0.4     -10.6    21.0   21.0
                   100      0.5     -9.02    13.2   13.2
                   100      0.6     -9.85    5.14   5.14
                   100      0.7     -7.94    2.08   2.08
                   100      0.8     -4.81    1.28   1.28
                   ", header = TRUE )
dta2 <- (   dta
            %>% mutate( samp.N = factor( samp.N )
                        , RSQ = factor( RSQ )
            )
            %>% gather( Measure, value, -c( samp.N, RSQ ) )
)

ggplot( dta2, aes( x = RSQ, y = value, fill = samp.N ) ) +
  geom_bar( stat = "identity", position = "dodge", colour = "black" ) +
  facet_wrap( ~ Measure, ncol = 1, scale = "free_y" ) +
  ylab( "" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...