【发布时间】:2015-07-22 11:22:11
【问题描述】:
目标:使用 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))
产生目标:
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) 使用相同的语法时, 安排() 一次只对 1 个变量进行排序,而另一个未排序。
关于 ddin 的一些细节:大型数据框。第一个操作是子集化以仅保留 3 个变量:
ddin_sub <- select(ddin, var1, var2, var3)
ddin_sub <- arrange(ddin_sub, desc(var2), desc(var3))
var2, var3: 数字
关于问题可能出在哪里的任何想法?谢谢。
【问题讨论】:
-
您可能必须展示一个不起作用的示例。
d1 <- data.frame(y = c(8, 2, 9, 9), z=c(3, 5, 2, 1));arrange(d1, desc(y), desc(z))按预期工作。你希望它独立排序吗?在那种情况下d1 %>% mutate_each(funs(sort(.,decreasing=TRUE))) -
非常感谢阿克伦。是的,对 df 变量进行独立排序。我编辑了这个问题以反映这一重要要求。 mutate_each() 就像一个魅力。