r - 按计数对 R 中的表进行排序

标签 r sorting dataframe dplyr

我在 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)

这给出了一个按因子名称排序的表,但是我想按计数或百分比排序。
enter image description here

我已经尝试了我所知道的排序功能。我也不能使用 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)

enter image description here

对其中任何一个进行修复将不胜感激。

最佳答案

我刚刚修复了您的代码,如下所示。您只需要 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/

相关文章:

r - 如何将新列添加到 R 中的空数据框中

r - 如何使用游侠按类获取特征重要性?

python - 在嵌套列表中查找和分组相同的值(浮点向量)

java - JAVA vector 排序

python - 将两个多索引数据帧与不同但相似的索引和列相乘

r - 如何在 ggplot geom_smooth() 上使用 manipulate()

r - 当所有出现的自变量均为 NA 时的线性模型

javascript - javascript中按子数组属性值对对象数组进行排序

python - 从函数调用 DataFrame .head() 时不起作用

Python:通过交替包含来自其他两个行的行来创建单个数据框