我有一个我想订购的数据框(不是按字母顺序排列),所以我写了这个
z
Grupos prueba$pendiente
1 TR 12.48182
2 TR2x45 39.87879
3 UT 20.89545
4 UT2x45 36.89015
orden
[1] "UT" "TR" "UT2x45" "TR2x45"
z<-arrange(z,orden)
z
Grupos prueba$pendiente
1 TR2x45 39.87879
2 UT2x45 36.89015
3 TR 12.48182
4 UT 20.89545
dput(z)的 结构(列表(Grupos =结构(c(4L,3L,2L,1L),。Label = c(&#34; UT&#34;, &#34; TR&#34;,&#34; UT2x45&#34;,&#34; TR2x45&#34;),class =&#34; factor&#34;),
prueba$pendiente
= c(39.8787878787918, 36.8901515151553,12.4818181818195,20.8954545454566)),. Name = c(&#34; Grupos&#34;, &#34; prueba $ pendiente&#34;),row.names = c(NA,-4L),class =&#34; data.frame&#34;)
安排功能正在运行,唯一的问题是我得到了错误的顺序(反向)我希望UT成为我的第一个值,就像在orden
向量中一样。
我确定这是一件非常愚蠢的事情,但我无法解决这个问题。
谢谢
答案 0 :(得分:1)
将decreasing = TRUE
添加到arrange
> arrange(z, orden, decreasing = TRUE)
## Grupos prueba.pendiente
## 1 UT 20.89545
## 2 TR 12.48182
## 3 UT2x45 36.89015
## 4 TR2x45 39.87879
或者,您可以重新考虑Grupos
并使用order
函数来确定&#34;子集&#34;订单。
> z$Grupos <- factor(z$Grupos, levels = orden)
> z[order(z$Grupos), ]
## Grupos prueba.pendiente
## 3 UT 20.89545
## 1 TR 12.48182
## 4 UT2x45 36.89015
## 2 TR2x45 39.87879
答案 1 :(得分:0)
z[order(orden,decreasing=TRUE),]
答案 2 :(得分:0)
你可以改变orden
arrange(z,rev(orden))
答案 3 :(得分:0)
您还可以使用简单基本函数match
z[match(orden, z$Grupos),]