Plyr arrange() 仅排序 1 个变量

Plyr arrange() sorts only 1 variable

Objective:使用 plyr 包中的 arrange() 独立地按 2 个变量的降序对数据帧进行排序

 dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"), 
                        levels = c("Low", "Med", "Hi"), ordered = TRUE),
             x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
             z = c(1, 1, 1, 2))
  arrange(dd, desc(y),desc(z))

产生 objective:

    b x y z
    1 Low C 9 2
    2  Hi A 9 1
    3  Hi A 8 1
    4 Med D 3 1

然而,当对感兴趣的实际数据帧使用相同的语法时 (ddin), arrange() 一次只对 1 个变量进行排序,而另一个未排序。

关于 ddin 的一些细节:大数据帧。第一个操作是子集只保留 3 个变量:

ddin_sub <- select(ddin, var1, var2, var3)
ddin_sub <- arrange(ddin_sub, desc(var2), desc(var3))

var2, var3: 数字

有没有想过问题出在哪里?谢谢。

如果需要单独对列进行排序,

 library(dplyr)
 mutate_each(d1, funs(sort(., decreasing=TRUE)))

数据

 d1 <- data.frame(y = c(8, 2, 9, 9), z=c(3, 5, 2, 1))