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