【发布时间】:2019-03-02 06:05:54
【问题描述】:
roots <- polyroot(c(5, 4, 3, 2, 1))
我想按虚部的升序对根进行排序。默认情况下,sort 函数按实部的升序对其进行排序。我已经阅读了文档,但我仍然不知道如何调整参数或编写命令。有人可以帮忙吗?
【问题讨论】:
标签: r sorting vector complex-numbers
roots <- polyroot(c(5, 4, 3, 2, 1))
我想按虚部的升序对根进行排序。默认情况下,sort 函数按实部的升序对其进行排序。我已经阅读了文档,但我仍然不知道如何调整参数或编写命令。有人可以帮忙吗?
【问题讨论】:
标签: r sorting vector complex-numbers
使用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
【讨论】:
这也有效:
> 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
将复数按虚部排序并返回其索引,然后使用索引以排序顺序引用对应的复数值。
【讨论】: