gpt4 book ai didi

r - 如何使用 dplyr 管道根据向量对数据框的行进行排序

转载 作者:行者123 更新时间:2023-12-03 15:13:49 26 4
gpt4 key购买 nike

我有以下数据框:

library(tidyverse)
dat <- structure(list(var1 = c(1L, 2L, 2L, 3L, 1L), var2 = structure(c(10L,
1L, 8L, 3L, 5L), .Label = c("b", "c", "f", "h", "i", "o", "s",
"t", "w", "x"), class = "factor"), var3 = c(7L, 5L, 5L, 8L, 5L
), var4 = structure(c(8L, 5L, 1L, 4L, 7L), .Label = c("b", "c",
"d", "e", "f", "h", "i", "w", "y"), class = "factor")), .Names = c("var1",
"var2", "var3", "var4"), row.names = c(NA, 5L), class = "data.frame")


dat
#> var1 var2 var3 var4
#> 1 1 x 7 w
#> 2 2 b 5 f
#> 3 2 t 5 b
#> 4 3 f 8 e
#> 5 1 i 5 i

我想做的是对 var2 进行排序/排列柱子
基于预定义的顺序:

my_order <- c('t','f','x','b','i')

最终想要的结果是这样的:

  var1 var2 var3 var4
2 t 5 b
3 f 8 e
1 x 7 w
2 b 5 f
1 i 5 i

我想在 dplyr 管道下进行。我怎样才能做到这一点?

充其量我能做的是:

> dat  %>% 
+ arrange(var2)
var1 var2 var3 var4
1 2 t 5 b
2 3 f 8 e
3 1 x 7 w
4 2 b 5 f
5 1 i 5 i

最佳答案

我们可以使用 arrangematch

library(dplyr)

dat %>%
arrange(match(var2, my_order))

# var1 var2 var3 var4
#1 2 t 5 b
#2 3 f 8 e
#3 1 x 7 w
#4 2 b 5 f
#5 1 i 5 i

关于r - 如何使用 dplyr 管道根据向量对数据框的行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52216341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com