使用R对表格进行排序

8
我有一个在R中的表格,我按照以下方式对其进行排序:
> x<-c("100","100","300","200","200","200")
> x
[1] "100" "100" "300" "200" "200" "200"
> table(x)
x
100 200 300 
  2   3   1 
> sort(table(x))
x
300 100 200 
  1   2   3 

但我的问题是,我希望按照300、100和200这几个数字进行排序。因此,我想知道如何做到。


我的意思是,一个能够使这一列可用的函数,以便我可以对其进行操作。 - Gotey
1
请在您的帖子中展示所需的结果。 - Rich Scriven
如果您只需要操作表格的结果,可以使用as.data.frame(table(x))将其转换为data.frame(可能您更熟悉它)。请注意,结果有点转置,所以您可能不喜欢它... - digEmAll
4
如果下面的答案是你想要的,只需使用rev(table(x)) - Rich Scriven
3个回答

18
你可以将表格转换为data.frame,然后使用来自包的arrange函数。
table(x) %>% 
        as.data.frame() %>% 
        arrange(desc(Freq))

6
您需要按照表格输出的名称进行排序。
tbl <- table(x)
tbl[order(-as.numeric(names(tbl)))]

4

这里有另一种解决方案;它基于简单的R代码,并适用于任何类型的数据,例如数字或字符串。希望能有所帮助:

x <- c("100","100","300","200","200","200")
t <- table(x)

# you can sort based on any order you prefer
order_ind <- c("300","100","200")

t[order_ind]

enter image description here


哇...这太棒了,而且还很有教育意义,可以让你了解如何访问表格。 - Mike M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接