【发布时间】:2018-11-02 22:24:50
【问题描述】:
陷入了我认为非常简单的解决方案,但不知何故我找不到方法。
我正在尝试 dplyr::arrange 中的 dataframe 值。问题是我想使用dplyr::group_by 将函数应用于组,并根据内部变量决定它是升序还是降序。
一个简单的例子:
library(dplyr)
test <-
data.frame(
var1 = c(rep(1,5), rep(2,5)),
var2 = c(1,3,2,5,9,7,8,3,5,9),
var3 = c(rep("i", 5), rep("d", 5))
)
这里我尝试按分组变量var1进行排列,但一切都是升序排列:
test %>%
group_by(var1) %>%
arrange(var2, .by_group = T)
目标是根据var3 值自动排列。更具体地说,如果var3 是“i”,则按升序排列,如果是“d”,则按降序排列,但在组内。
想要的结果:
data.frame(
var1 = c(rep(1,5), rep(2,5)),
var2 = c(1,2,3,5,9,9,8,7,5,3),
var3 = c(rep("i", 5), rep("d", 5)))
【问题讨论】:
-
尝试使用'test1 %>% group_by(var1) %>%arrange(desc(var2))'进行降序