Как именно работает переменная "group =" в data.frame () - PullRequest
0 голосов
/ 25 апреля 2018

Я не могу найти много информации о том, как именно переменная group в data.frame работает. У меня есть три вектора следующим образом:

compare <- c("5vs2", "8vs5", "11vs8")
up <- c(4432, 1578, 2254)
down <- c(-4360, -1324, -2652)

и я пытаюсь создать фрейм данных для гистограммы. Я создал его следующим образом:

up_down <- data.frame(
  group = c("Up", "Down"),
  x = compare, 
  y=c(up, down))

Выходной кадр данных выглядит следующим образом:

  group     x     y
1    Up  5vs2  4432
2  Down  8vs5  1578
3    Up 11vs8  2254
4  Down  5vs2 -4360
5    Up  8vs5 -1324
6  Down 11vs8 -2652

Здесь видно, что в строке 5 группировка должна быть Down, но вместо этого она сделала это Up. Что именно мне здесь не хватает?

При построении графика значения x затем размещаются не по порядку, сначала ставятся 11vs8, вторые 6vs3 и последние 9vs6. Я чувствую, что это должны быть очевидные проблемы, которые нужно решить, но я не могу их понять.

ggplot(up_down, aes(x=x, y=y, fill=group))+
  geom_bar(stat="identity", position="identity")

1 Ответ

0 голосов
/ 25 апреля 2018

Вы связываете векторы длины 2, 3 и 6. R перераспределяет векторы, чтобы соответствовать наибольшей длине, поэтому group повторяется 1 2 1 2 1 2. Если вы хотите избежать этого, попробуйте вместо этого: group = rep(c("Up", "Down"), each = 3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...