我想在数据框中订购行。我尝试过使用顺序,排序,排名和排列(dplyr),但我找不到合适的脚本。我没有给出我尝试过的脚本,因为它没有用。
我的数据框(ldd)示例:
days HDP CHP AKP MHP
(int) (dbl) (dbl) (dbl) (dbl)
1 4901.000 898.0000 12299.00 5394.000
2 5395.000 646.0000 75309.00 5638.000
期望的结果:
days HDP CHP AKP MHP
(int) (dbl) (dbl) (dbl) (dbl)
1 3 4 1 2
2 2 4 1 3
感谢您的建议。
ldd数据框:
structure(list(days = 1:31, HDP = c(4901, 5395, 5368, 4858, 4424,
3927.83333333333, 3652.85714285714, 3358.75, 3171.22222222222,
2995.6, 3136.45454545455, 3493, 3710.38461538462, 3989.78571428571,
4143.8, 4413.8125, 4887.47058823529, 4979.16666666667, 5124.31578947368,
5280.3, 5461.66666666667, 5498.68181818182, 5685.86956521739,
5805.25, 5803.56, 5838.53846153846, 6024.14814814815, 6333.03571428571,
7081.13793103448, 7510.3, 8995), CHP = c(898, 646, 557.333333333333,
586.75, 674.6, 696.5, 698.285714285714, 665.75, 642.222222222222,
737.2, 897.909090909091, 1231.08333333333, 1593.30769230769,
5747.78571428571, 6058.46666666667, 5997.0625, 5874.35294117647,
5817, 5919.73684210526, 5902, 5821.19047619048, 5732.04545454545,
5760.39130434783, 5783.83333333333, 5777.76, 5762.84615384615,
5781.14814814815, 5819.25, 5838.75862068965, 5901.4, 6234.09677419355
), AKP = c(12299, 75309, 86964.3333333333, 67210.25, 54871, 47262,
41899.7142857143, 37116.5, 33301.7777777778, 31218.7, 28921.1818181818,
27059.3333333333, 25469.5384615385, 24323.2857142857, 23491,
22451.5625, 21454.5882352941, 20912.8888888889, 20218.4736842105,
19527.1, 18988.619047619, 18404.2727272727, 17740.5217391304,
17223.75, 17383.64, 20412.1153846154, 20907.037037037, 22194.9642857143,
23105.4482758621, 23493.1666666667, 23399.0322580645), MHP = c(5394,
5638, 5261.33333333333, 4614.75, 5017.6, 4976.16666666667, 4887,
4537.125, 4417.22222222222, 4655.4, 4727, 4817.41666666667, 4892.84615384615,
4974.14285714286, 5002.06666666667, 5188.5, 5410.23529411765,
5510.61111111111, 5700.52631578947, 5725.6, 5800.52380952381,
5765.09090909091, 5780.95652173913, 5935.33333333333, 5939.76,
6049.30769230769, 6166.37037037037, 6256.32142857143, 6381, 6625.03333333333,
6848.90322580645)), .Names = c("days", "HDP", "CHP", "AKP", "MHP"
), class = c("tbl_df", "data.frame"), row.names = c(NA, -31L))
答案 0 :(得分:1)
您可以尝试使用rank
t(apply(df[-1], 1, function(x) rank(-x)))
# HDP CHP AKP MHP
#[1,] 3 4 1 2
#[2,] 3 4 1 2
#[3,] 2 4 1 3
#[4,] 2 4 1 3
#[5,] 3 4 1 2
#[6,] 3 4 1 2
#[7,] 3 4 1 2
#[8,] 3 4 1 2
#[9,] 3 4 1 2
#[10,] 3 4 1 2
#[11,] 3 4 1 2
#[12,] 3 4 1 2
#[13,] 3 4 1 2
#[14,] 4 2 1 3
#[15,] 4 2 1 3
#[16,] 4 2 1 3
#[17,] 4 2 1 3
#[18,] 4 2 1 3
#[19,] 4 2 1 3
#[20,] 4 2 1 3
#[21,] 4 2 1 3
#[22,] 4 3 1 2
#[23,] 4 3 1 2
#[24,] 3 4 1 2
#[25,] 3 4 1 2
#[26,] 3 4 1 2
#[27,] 3 4 1 2
#[28,] 2 4 1 3
#[29,] 2 4 1 3
#[30,] 2 4 1 3
#[31,] 2 4 1 3