首页 > 解决方案 > 按组对定性变量进行排序并保留索引

问题描述

我有一个由 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)

标签: rsorting

解决方案


$当我们使用时,我们可以使用其中一个或[[作为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)

推荐阅读