ahb*_*bon 4 r dataframe dplyr tidyverse
对于以下玩具数据dd,我尝试根据向量的顺序对列进行分组langue并重新排列列:charchar_order
dd <- data.frame(langue = c('English', 'French', 'English', 'French'),
char = c('world', 'monde', 'hello', 'bonjour'),
x = c(8, 3, 9, 9),
y = c(1, 1, 1, 2))
dd
char_order <- c('hello', 'world', 'bonjour', 'monde')
dd %>%
group_by(langue) %>% arrange(.by_group = TRUE)
Run Code Online (Sandbox Code Playgroud)
出去:
langue char x y
<chr> <chr> <dbl> <dbl>
1 English world 8 1
2 English hello 9 1
3 French monde 3 1
4 French bonjour 9 2
Run Code Online (Sandbox Code Playgroud)
但我希望得到如下结果:
langue char x y
<chr> <chr> <dbl> <dbl>
1 English hello 9 1
2 English world 8 1
3 French bonjour 9 2
4 French monde 3 1
Run Code Online (Sandbox Code Playgroud)
我怎样才能在管道(%>%)中使用dplyr或其他包来实现这一点?真诚的感谢。
您可以设置因子水平
dd %>%
mutate(char = factor(char, levels = char_order)) %>%
group_by(langue) %>% arrange(char, .by_group = TRUE)
langue char x y
<chr> <fct> <dbl> <dbl>
1 English hello 9 1
2 English world 8 1
3 French bonjour 9 2
4 French monde 3 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |