r - 按组对定性变量进行排序并保留索引
问题描述
我有一个由 6 个不同字母组成的变量,我需要对它进行排序以获得 6 个不同的索引,以便我能够根据这个定性变量对数据集进行排序。
这是变量:
data = c("H", "H", "A", "A", "B", "R", "E", "B", "E", "B", "A", "E",
"R", "R", "I", "B", "I", "I", "H", "A", "E", "I", "B", "I", "H",
"B", "R", "E", "B", "R", "H", "R", "I", "A", "B", "E", "A", "E",
"I", "H", "A", "E", "I", "H", "R", "H", "A", "R")
如果我对此进行排序,我只会获得字母顺序:
data_idx = sort(data, index.return = TRUE)
- 如何获取这些索引并重新排序此变量?
解决方案
$
当我们使用时,我们可以使用其中一个或[[
作为list
输出来提取index.return = TRUE
sort(data, index.return = TRUE)$ix
另一种选择是order
order(data)
如果我们需要获取索引
match(data, unique(data))
或许
split(seq_along(data), data)
或与ave
ave(seq_along(data), data, FUN = seq_along)
推荐阅读
- c++ - C++ 编译时特征值评估
- azure - 具有多个协变量特征的时间序列的 Azure AutoML 预测示例
- java - 自定义对话框 - 指定的孩子已经有一个父母
- javascript - 如何以角度获取具有相同名称但在不同界面中的数据
- postgresql - 取消或终止查询的日志是什么?
- python - 如何使用不均匀的子数组作为瓷砖来平铺一维 numpy 数组?
- sql - 删除重复记录,仅当记录差异小于 2 分钟时才保留最早
- reactjs - NextJS中没有状态的路由器事件和预加载器
- javascript - DataTables 拆分数组值并呈现到单个子行中的多表
- python-3.x - Python抛出一个奇怪的编码异常