用R语言ifelse做分组,可是组别的顺序乱了要怎么调整呢?

Python012

用R语言ifelse做分组,可是组别的顺序乱了要怎么调整呢?,第1张

第一次件ifelse嵌套这么多的使用,你是跟自己有仇么,非要把问题搞的这么复杂。。。

建议用if条件句,或者BASE中原始方法修改。

ifelse个人觉得嵌套两个最优。再多必然晕。

用order函数

数字从大到小,所以是倒序列,开启order中的倒序模式会导致所有关联的sort都是倒序,我们得用一个小技巧:负号。(order的作用是帮你拿到行的index,如此所有排序都是关联的。)

假如你数据叫data

data <- data[order(-data[[2]], data[[1]]), ]data

如此你的第二列数字会是取了相反数再sort,所以是倒序,而第一列是正排序,按照字母表顺序。

放在第一个位置的data[[2]]就是主条件,在后面的是次条件,次次条件。。。

使用R包dplyr的函数arrange更简单,更简洁:

#多条件排序:使用dplyr::arrange

library(dplyr)

data("iris")

head(iris)

#第一列升序,然后是第三列升序

arrange(iris,iris[,1],iris[,3])

#第一列升序,然后是第三列降序

arrange(iris,iris[,1],-iris[,3])

扩展资料

R语言排序函数sort(),rank(),order()

>x<-c(97,93,85,74,32,100,99,67)

>sort(x)

[1]32677485939799100

>order(x)

[1]58432176

>rank(x)

[1]65431872