假设我使用以下语句生成了一个向量:
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/