“group =”变量在data.frame()

时间:2018-04-25 03:18:00

标签: r dataframe ggplot2

我无法找到有关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 :(得分:3)

你是长度为2,3和6的绑定向量.R循环向量以适应最大长度,因此group重复1 2 1 2 1 2。如果您想避免这种情况,请尝试改为:group = rep(c("Up", "Down"), each = 3)