Ошибка при попытке создания граненого графика в ggplot2 - PullRequest
3 голосов
/ 11 апреля 2010

Я пытаюсь сделать граненый график в ggplot2 коэффициентов на регрессорах из две линейные модели с одинаковыми предикторами. Фрейм данных, который я построил, выглядит так:

r.together>
          reg         coef        se      y
1  (Intercept)  5.068608671 0.6990873 Labels
2     goodTRUE  0.310575129 0.5228815 Labels
3    indiaTRUE -1.196868662 0.5192330 Labels
4    moneyTRUE -0.586451273 0.6011257 Labels
5     maleTRUE -0.157618168 0.5332040 Labels
6  (Intercept)  4.225580743 0.6010509  Bonus
7     goodTRUE  1.272760149 0.4524954  Bonus
8    indiaTRUE -0.829588862 0.4492838  Bonus
9    moneyTRUE -0.003571476 0.5175601  Bonus
10    maleTRUE  0.977011737 0.4602726  Bonus

Столбец "y" обозначает название модели, reg - это регрессоры, а coef и se - это то, что вы думаете.

Я хочу построить:

g <- qplot(reg, coef, facets=.~y, data = r.together) + coord_flip() 

Но когда я пытаюсь отобразить сюжет, я получаю:

> print(g)
Error in names(df) <- output : 
'names' attribute [2] must be the same length as the vector [1]

Что странно в том, что

qplot(reg, coef, colour=y, data = r.together) + coord_flip()

графики, как и следовало ожидать.

Ответы [ 2 ]

5 голосов
/ 11 апреля 2010

Не знаю почему, но, похоже, проблема в имени y. Если вы измените его, то он будет работать

r.together <- read.table(textConnection("
          reg         coef        se      myfactor
 (Intercept)  5.068608671 0.6990873 Labels
    goodTRUE  0.310575129 0.5228815 Labels
   indiaTRUE -1.196868662 0.5192330 Labels
   moneyTRUE -0.586451273 0.6011257 Labels
    maleTRUE -0.157618168 0.5332040 Labels
 (Intercept)  4.225580743 0.6010509  Bonus
    goodTRUE  1.272760149 0.4524954  Bonus
   indiaTRUE -0.829588862 0.4492838  Bonus
   moneyTRUE -0.003571476 0.5175601  Bonus
    maleTRUE  0.977011737 0.4602726  Bonus
"),header=T)

qplot(reg, coef, data = r.together, facets= .~myfactor ) + coord_flip() 
2 голосов
/ 11 апреля 2010

Может ли быть зарезервированным словом?

r.together=data.frame(
  reg=c("(Intercept)", "goodTRUE", "indiaTRUE", "moneyTRUE", "maleTRUE", "(Intercept)", "goodTRUE", "indiaTRUE", "moneyTRUE", "maleTRUE"),
  coef=c(5.068608671, 0.310575129, -1.196868662, -0.586451273, -0.157618168, 4.225580743, 1.272760149, -0.829588862, -0.003571476, 0.977011737),
  se=c(0.6990873, 0.5228815, 0.519233, 0.6011257, 0.533204, 0.6010509, 0.4524954, 0.4492838, 0.5175601, 0.4602726),
  yy= c("Labels", "Labels", "Labels", "Labels", "Labels", "Bonus", "Bonus", "Bonus", "Bonus", "Bonus")
 )

гг, кажется, работает

g <- qplot(reg, coef, data = r.together,facets=. ~ yy) +coord_flip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...