roots <- polyroot(c(5, 4, 3, 2, 1))
我想按虚部的升序对根进行排序。默认情况下,sort
函数按实部的升序对其进行排序。我已经阅读了文档,但仍然不知道如何调整参数或编写命令。有人可以帮忙吗?
答案 0 :(得分:4)
使用Im
函数提取虚部并对其进行排序。
roots <- polyroot(c(5, 4, 3, 2, 1))
#[1] 0.287815+1.416093i -1.287815+0.857897i -1.287815-0.857897i
#[4] 0.287815-1.416093i
roots[order(Im(roots))]
#[1] 0.287815-1.416093i -1.287815-0.857897i -1.287815+0.857897i
#[4] 0.287815+1.416093i
答案 1 :(得分:0)
这也有效:
> roots<-polyroot(c(5,4,3,2,1))
> roots[sort(Im(roots),index.return=T)$ix]
[1] 0.287815-1.416093i -1.287815-0.857897i
[3] -1.287815+0.857897i 0.287815+1.416093i
将复数按其虚部排序,并返回其索引,然后使用索引按排序顺序引用相应的复数。