假设我使用以下语句生成了一个向量:

x1 <- rep(4:1, sample(1:100,4))

现在,当我尝试使用以下命令计算出现次数时
count(x1)
  x freq
1 1   40
2 2   57
3 3    3
4 4   46

或者
as.data.frame(table(x1))
  x1 Freq
1  1   40
2  2   57
3  3    3
4  4   46

在这两种情况下,都不会保留出现的顺序。我想保留出现的顺序,即输出应该是这样的
  x1 Freq
1  4   46
2  3    3
3  2   57
4  1   40

什么是最干净的方法来做到这一点?另外,有没有办法强制执行特定命令?

最佳答案

一种方法是将变量转换为 factor 并使用 levels 参数指定所需的顺序。来自 ?table :“表使用交叉分类因子来构建每个因子级别组合的计数列联表”; “最好是供给要素,而不是靠强制。”因此,通过自己转换为 factor,您负责强制转换和 levels 设置的顺序。

x1 <- rep(factor(4:1, levels = 4:1), sample(1:100,4))

table(x1)
# x1
#  4  3  2  1
#  90 72 11 16

关于r - 在 R 中计数并保留出现的顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23055493/

10-12 23:31