按R中的虚部对复数向量进行排序
sorting a complex vector by imaginary part in R
roots <- polyroot(c(5, 4, 3, 2, 1))
我想按虚部的升序对根进行排序。默认情况下,sort
函数按实部的递增顺序对其进行排序。我已经阅读了文档,但我仍然不知道如何调整参数或编写命令。有人可以帮忙吗?
使用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
按照复数的虚部和return它们的索引对复数进行排序,然后使用索引引用排序后的相应复数值。
roots <- polyroot(c(5, 4, 3, 2, 1))
我想按虚部的升序对根进行排序。默认情况下,sort
函数按实部的递增顺序对其进行排序。我已经阅读了文档,但我仍然不知道如何调整参数或编写命令。有人可以帮忙吗?
使用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
按照复数的虚部和return它们的索引对复数进行排序,然后使用索引引用排序后的相应复数值。