我在 R 中创建了一个函数来创建一个给出计数和百分比的表:
tblFun <- function(x){
tbl <- table((x))
res <- cbind(tbl,round(prop.table(tbl)*100,0))
colnames(res) <- c('Count','Percentage')
res}
然后执行它我针对我的数据集中的一个字段运行它并使用 kable 输出:
region <-tblFun(mtcars$mpg)
knitr::kable(region)
这给出了一个按因子名称排序的表,但是我想按计数或百分比排序。
我已经尝试了我所知道的排序功能。我也不能使用 tidyverse 库函数,因为它们不会给我正确的百分比:
library(dplyr)
region <- na.omit(mtcars) %>%
group_by(mtcars$mpg) %>%
summarize(Count=n()) %>%
mutate(Percent = round((n()/sum(n())*100))) %>%
arrange(desc(Count))
knitr::kable(region)
对其中任何一个进行修复将不胜感激。
最佳答案
我刚刚修复了您的代码,如下所示。您只需要 count
而不是 n()
:
library(dplyr)
na.omit(mtcars) %>%
group_by(mtcars$mpg) %>%
summarize(Count=n()) %>%
mutate(Percent = round((Count/sum(Count)*100))) %>%
arrange(desc(Count))
# A tibble: 25 x 3
# `mtcars$mpg` Count Percent
# <dbl> <int> <dbl>
# 1 10.4 2 6
# 2 15.2 2 6
# 3 19.2 2 6
# 4 21.0 2 6
# 5 21.4 2 6
# 6 22.8 2 6
# 7 30.4 2 6
# 8 13.3 1 3
# 9 14.3 1 3
#10 14.7 1 3
# ... with 15 more rows
关于r - 按计数对 R 中的表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48001805/