R 按因子排序数据框列-因子顺序需要重新排序

R 按因子排序数据框列-因子顺序需要重新排序,r,sorting,dataframe,R,Sorting,Dataframe,我需要根据数据帧的两列绘制条形图。为了获得正确的顺序,我需要对一列的因子重新排序,并用它对数据帧的其余部分重新排序。我试图对因子重新排序,但其余的列保持不变。如何对整个数据帧进行排序?我将展示我如何处理iris数据(请注意,我的数据实际上有两个标称列) 但直到现在,订单仍然不是我想要的: ` 要求(plyr) d要求(plyr) d要求(plyr) d要求(plyr) 这几乎就是我想要的。我想我的要求不够精确。然而,因子的顺序并不正确。条形图仍将显示顺序“virginica”、“versicol

我需要根据数据帧的两列绘制条形图。为了获得正确的顺序,我需要对一列的因子重新排序,并用它对数据帧的其余部分重新排序。我试图对因子重新排序,但其余的列保持不变。如何对整个数据帧进行排序?我将展示我如何处理iris数据(请注意,我的数据实际上有两个标称列)

但直到现在,订单仍然不是我想要的: `

要求(plyr)
d<代码>要求(plyr)
d<代码>要求(plyr)
d<代码>要求(plyr)

这几乎就是我想要的。我想我的要求不够精确。然而,因子的顺序并不正确。条形图仍将显示顺序“virginica”、“versicolor”、“setosa”,因为这似乎取决于
d$物种的因子顺序。你也知道这个问题的答案吗?@aldorado。如果您检查
级别(d1$Species)#[1]“setosa”“versicolor”“virginica”
,它仍然没有更改。您必须:
d$Species它终于起作用了(因为我先写了
label
,而不是
level
,所以它不起作用了),谢谢!这几乎就是我想要的。我想我的要求不够精确。然而,因子的顺序并不正确。条形图仍将显示顺序“virginica”、“versicolor”、“setosa”,因为这似乎取决于
d$物种的因子顺序。你也知道这个问题的答案吗?@aldorado。如果您检查
级别(d1$Species)#[1]“setosa”“versicolor”“virginica”
,它仍然没有更改。您必须:
d$Species它终于起作用了(因为我先写了
label
,而不是
level
,所以它不起作用了),谢谢!这几乎就是我想要的。我想我的要求不够精确。然而,因子的顺序并不正确。条形图仍将显示顺序“virginica”、“versicolor”、“setosa”,因为这似乎取决于
d$物种的因子顺序。你也知道这个问题的答案吗?@aldorado。如果您检查
级别(d1$Species)#[1]“setosa”“versicolor”“virginica”
,它仍然没有更改。您必须:
d$Species它终于起作用了(因为我先写了
label
,而不是
level
,所以它不起作用了),谢谢!这几乎就是我想要的。我想我的要求不够精确。然而,因子的顺序并不正确。条形图仍将显示顺序“virginica”、“versicolor”、“setosa”,因为这似乎取决于
d$物种的因子顺序。你也知道这个问题的答案吗?@aldorado。如果您检查
级别(d1$Species)#[1]“setosa”“versicolor”“virginica”
,它仍然没有更改。您必须:
d$Species它终于起作用了(因为我先写了
label
,而不是
level
,所以它不起作用了),谢谢!
> d<-iris
> head(d)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
> d$Species<-factor(d$Species, labels=c("virginica","setosa","versicolor"))
> head(d)
  Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
1          5.1         3.5          1.4         0.2 virginica
2          4.9         3.0          1.4         0.2 virginica
3          4.7         3.2          1.3         0.2 virginica
4          4.6         3.1          1.5         0.2 virginica
5          5.0         3.6          1.4         0.2 virginica
6          5.4         3.9          1.7         0.4 virginica
> 
head(d1$Species)
[1] virginica virginica virginica virginica virginica virginica
Levels: virginica setosa versicolor
 d1 <- d[order(factor(d$Species, levels=c("virginica","setosa","versicolor"))),]
 head(d1)
 #   Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
 #101          6.3         3.3          6.0         2.5 virginica
 #102          5.8         2.7          5.1         1.9 virginica
 #103          7.1         3.0          5.9         2.1 virginica
 #104          6.3         2.9          5.6         1.8 virginica
 #105          6.5         3.0          5.8         2.2 virginica
 #106          7.6         3.0          6.6         2.1 virginica
   d$Species <- factor(d$Species, levels=c("virginica","setosa","versicolor"))
   d1 <- d[order(d$Species),]
  levels(d1$Species)
  #[1] "virginica"  "setosa"     "versicolor"
  head(d1,2)
  #    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
  #101          6.3         3.3          6.0         2.5 virginica
  #102          5.8         2.7          5.1         1.9 virginica
require(plyr)
d <- iris
arrange(d, factor(d$Species, levels = c("virginica","setosa","versicolor")))