用组对定性变量进行排序并保留索引

时间:2020-03-16 19:35:03

标签: r sorting

我有一个由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)
  • 如何获取这些索引并对变量重新排序?

1 个答案:

答案 0 :(得分:1)

我们可以使用$[[进行提取,因为使用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)