你如何在R中生成一个下降幅度列表?

rde*_*00b 2 r

我在R中有一个列表,看起来像这样

[1] 1067  576    0    0    0  786    0
Run Code Online (Sandbox Code Playgroud)

我想要的是另一个列表,它以这样的方式排序,以便告诉元素的顺序从大到小,所以在这种情况下它会报告

1 6 2
Run Code Online (Sandbox Code Playgroud)

也就是说,第一个元素是最大的,然后是第6个元素,然后是第二个元素.

思考?

jlh*_*ard 5

你似乎想要排除0.

v <- c(1067,  576,    0,    0,    0,  786,    0)
rev(order(v))[1:length(v[v>0])]
# [1] 1 6 2
Run Code Online (Sandbox Code Playgroud)

你也可以使用:

order(v, decreasing=TRUE)[1:length(v[v>0])]
Run Code Online (Sandbox Code Playgroud)

这相当于一件事.