r - 根据给定列表排序数据集
问题描述
我有一个数据集dt
,我想按照listCountriesOrdered
&col
按字母顺序排序
library(data.table)
countries<- c("AT","BE","BG","DE","CY")
listCountriesOrdered <- c("BE","BG","DE","AT","CY")
col <- c("A","C","B")
dt <- CJ(countries, col)
稍后我想left_join
处理值并保持正确的顺序
解决方案
你可以使用match
:
dt[order(match(countries,listCountriesOrdered),col)]
countries col
1: BE A
2: BE B
3: BE C
4: BG A
5: BG B
6: BG C
7: DE A
8: DE B
9: DE C
10: AT A
11: AT B
12: AT C
13: CY A
14: CY B
15: CY C
推荐阅读
- c# - If 语句内 If 语句条件
- r - 带有条件的 RShiny 中的 renderText If Else
- java - 为什么在 Embedded Jetty 中使用 server.join()
- c# - 旋转后,每当我向左或向右移动时,它都会向相反的方向移动
- c# - 根据光线投射命中创建对游戏对象的引用
- sql - 逐行获取表的数据
- php - 如何在 PHP 中不直接使用 $_FILES Superglobal?
- mysql - 从日期时间输入中选择数据为 2019 年 8 月并按其分组
- python - 我使用 discord.py 制作了一个 Welcomer 机器人。启动成功,但不向频道发送指定消息
- python - python,字符串到十六进制数组