基本上,我希望标识R dataframe列中的唯一值,并获得每个值的计数,最终目标是将它们的计数从大到小排序。你知道我该怎么做吗?
提前谢谢你!
发布于 2020-03-05 21:31:14
基本R函数是table
table(df$column)
使用mtcars
的一个可重现的示例
> data(mtcars)
> table(mtcars$cyl)
4 6 8
11 7 14
> sort(table(mtcars$cyl),decreasing=TRUE)
8 4 6
14 11 7
发布于 2020-03-05 21:29:35
一个选项是add_count
,它创建一个具有频率计数的列,然后使用它来order
行
library(dplyr)
df1 %>%
add_count(col1) %>%
arrange(desc(n))
如果我们只需要汇总的值,请使用count
df1 %>%
count(col1) %>%
arrange(desc(n))
使用mtcars
的一个可重现的示例
data(mtcars)
mtcars %>%
add_count(vs) %>%
arrange(desc(n))
发布于 2020-03-05 21:33:04
这里有一个不同的dplyr解决方案:
library(dplyr)
df <- as.data.frame(table(df$colname)) %>%
arrange(desc(Var1))
https://stackoverflow.com/questions/60554213
复制