我有一个数据集,我需要从中收集一些非常基本的描述性统计数据。数据集是一组我想按种族细分的观察值,例如表x%白色,y%亚洲等(其中有一列用数字标识符来描述种族)
到目前为止,我跑了
summary(dataset)
summary(dataset$race)
...虽然它给了我原始数据的细目分类,但我需要在表格中按百分比将其细分(其他变量也是如此)。 R是否具有执行此操作的本机函数,或者您知道我可以在其中执行此操作的良好库?
数据集的一列称为“ race_num”,另一列称为“ race_string”,其中race_string是因子数据类型,并存储种族的字符串(“ white”,“ spanish”等)。 race_num存储数字标识符。我想要一个简单的细分,例如:
White: x%
Black: y%
Hispanic: z%
答案 0 :(得分:1)
tidyverse
是一个很好的学习工具,因为它可以帮助您进行探索性数据分析和清理工作。
tidyverse
为您加载了一堆程序包,因此它是一个程序包程序包。在这种情况下,它将加载到名为dplyr
的软件包中,该软件包具有您正在寻找的名为group_by()
这是在R中名为group_by()
的数据集中使用mpg
的简短示例。该示例对制造商进行了细分,但在这种情况下,您可以使用它来按%white
或其他任何方式进行分组:
library(tidyverse)
#> Warning: package 'tidyverse' was built under R version 3.6.3
#> Warning: package 'ggplot2' was built under R version 3.6.3
#> Warning: package 'tibble' was built under R version 3.6.3
#> Warning: package 'tidyr' was built under R version 3.6.3
#> Warning: package 'purrr' was built under R version 3.6.3
#> Warning: package 'dplyr' was built under R version 3.6.3
#> Warning: package 'forcats' was built under R version 3.6.3
head(mpg)
#> # A tibble: 6 x 11
#> manufacturer model displ year cyl trans drv cty hwy fl class
#> <chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
#> 1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compa~
#> 2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compa~
#> 3 audi a4 2 2008 4 manual(m6) f 20 31 p compa~
#> 4 audi a4 2 2008 4 auto(av) f 21 30 p compa~
#> 5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compa~
#> 6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compa~
mpg %>%
group_by(manufacturer) %>%
summarise(count = n())
#> `summarise()` ungrouping output (override with `.groups` argument)
#> # A tibble: 15 x 2
#> manufacturer count
#> <chr> <int>
#> 1 audi 18
#> 2 chevrolet 19
#> 3 dodge 37
#> 4 ford 25
#> 5 honda 9
#> 6 hyundai 14
#> 7 jeep 8
#> 8 land rover 4
#> 9 lincoln 3
#> 10 mercury 4
#> 11 nissan 13
#> 12 pontiac 5
#> 13 subaru 14
#> 14 toyota 34
#> 15 volkswagen 27
由reprex package(v0.3.0)于2020-09-09创建
我使用的其他功能summarise
通常与group_by
一起使用,并创建一个新的数据集。如果要在数据集中添加新列,只需将summarise
替换为mutate
即可创建新列。
在summarise
函数中,您还可以使用其他工具,例如sum
或mean
并指定一列。示例中使用的n()
可以提供观测的总数。
'pipe'字符%>%
是一个很好的工具,也可以用来解决这个问题。它采用在左侧创建或给出的数据集或向量,并使其在右侧成为函数的第一个(或数据)参数。
答案 1 :(得分:0)
您可以使用summarytools
:
summarytools::freq(iris)
#> iris$Sepal.Width
#> Type: Numeric
#>
#> Freq % Valid % Valid Cum. % Total % Total Cum.
#> ----------- ------ --------- -------------- --------- --------------
#> 2 1 0.67 0.67 0.67 0.67
#> 2.2 3 2.00 2.67 2.00 2.67
#> 2.3 4 2.67 5.33 2.67 5.33
#> 2.4 3 2.00 7.33 2.00 7.33
#> 2.5 8 5.33 12.67 5.33 12.67
#> 2.6 5 3.33 16.00 3.33 16.00
#> 2.7 9 6.00 22.00 6.00 22.00
#> 2.8 14 9.33 31.33 9.33 31.33
#> 2.9 10 6.67 38.00 6.67 38.00
#> 3 26 17.33 55.33 17.33 55.33
#> 3.1 11 7.33 62.67 7.33 62.67
#> 3.2 13 8.67 71.33 8.67 71.33
#> 3.3 6 4.00 75.33 4.00 75.33
#> 3.4 12 8.00 83.33 8.00 83.33
#> 3.5 6 4.00 87.33 4.00 87.33
#> 3.6 4 2.67 90.00 2.67 90.00
#> 3.7 3 2.00 92.00 2.00 92.00
#> 3.8 6 4.00 96.00 4.00 96.00
#> 3.9 2 1.33 97.33 1.33 97.33
#> 4 1 0.67 98.00 0.67 98.00
#> 4.1 1 0.67 98.67 0.67 98.67
#> 4.2 1 0.67 99.33 0.67 99.33
#> 4.4 1 0.67 100.00 0.67 100.00
#> <NA> 0 0.00 100.00
#> Total 150 100.00 100.00 100.00 100.00
#>
#> iris$Petal.Width
#> Type: Numeric
#>
#> Freq % Valid % Valid Cum. % Total % Total Cum.
#> ----------- ------ --------- -------------- --------- --------------
#> 0.1 5 3.33 3.33 3.33 3.33
#> 0.2 29 19.33 22.67 19.33 22.67
#> 0.3 7 4.67 27.33 4.67 27.33
#> 0.4 7 4.67 32.00 4.67 32.00
#> 0.5 1 0.67 32.67 0.67 32.67
#> 0.6 1 0.67 33.33 0.67 33.33
#> 1 7 4.67 38.00 4.67 38.00
#> 1.1 3 2.00 40.00 2.00 40.00
#> 1.2 5 3.33 43.33 3.33 43.33
#> 1.3 13 8.67 52.00 8.67 52.00
#> 1.4 8 5.33 57.33 5.33 57.33
#> 1.5 12 8.00 65.33 8.00 65.33
#> 1.6 4 2.67 68.00 2.67 68.00
#> 1.7 2 1.33 69.33 1.33 69.33
#> 1.8 12 8.00 77.33 8.00 77.33
#> 1.9 5 3.33 80.67 3.33 80.67
#> 2 6 4.00 84.67 4.00 84.67
#> 2.1 6 4.00 88.67 4.00 88.67
#> 2.2 3 2.00 90.67 2.00 90.67
#> 2.3 8 5.33 96.00 5.33 96.00
#> 2.4 3 2.00 98.00 2.00 98.00
#> 2.5 3 2.00 100.00 2.00 100.00
#> <NA> 0 0.00 100.00
#> Total 150 100.00 100.00 100.00 100.00
#>
#> iris$Species
#> Type: Factor
#>
#> Freq % Valid % Valid Cum. % Total % Total Cum.
#> ---------------- ------ --------- -------------- --------- --------------
#> setosa 50 33.33 33.33 33.33 33.33
#> versicolor 50 33.33 66.67 33.33 66.67
#> virginica 50 33.33 100.00 33.33 100.00
#> <NA> 0 0.00 100.00
#> Total 150 100.00 100.00 100.00 100.00
由reprex package(v0.3.0)于2020-09-09创建