如何通过dplyr中的另一个变量(而不是频率)计算R中的比例
使用mtcars数据,我想计算每组cyl和am的mpg比例。如何计算它如何通过dplyr中的另一个变量(而不是频率)计算R中的比例,r,group-by,dplyr,R,Group By,Dplyr,使用mtcars数据,我想计算每组cyl和am的mpg比例。如何计算它 mtcars %>% group_by(cyl, am) %>% summarise(mpg = n(mpg)) %>% mutate(mpg.gr = mpg/(sum(mpg)) 提前谢谢 如果我理解正确,您需要cyl和am的每个组合的记录比例。如果是这样,那么我认为您的代码不起作用,因为n()不接受参数。在计算比例之前,还需要ungroup() 你可以简单地做: mtcars %&
mtcars %>%
group_by(cyl, am) %>%
summarise(mpg = n(mpg)) %>%
mutate(mpg.gr = mpg/(sum(mpg))
提前谢谢 如果我理解正确,您需要
cyl
和am
的每个组合的记录比例。如果是这样,那么我认为您的代码不起作用,因为n()
不接受参数。在计算比例之前,还需要ungroup()
你可以简单地做:
mtcars %>%
group_by(cyl, am) %>%
summarise(mpg = n()) %>%
ungroup() %>%
mutate(mpg.gr = mpg/(sum(mpg))
#> # A tibble: 6 x 4
#> cyl am mpg mpg.gr
#> <dbl> <dbl> <int> <dbl>
#> 1 4 0 3 0.0938
#> 2 4 1 8 0.25
#> 3 6 0 4 0.125
#> 4 6 1 3 0.0938
#> 5 8 0 12 0.375
#> 6 8 1 2 0.0625
mtcars%>%
组别(共青团,上午)%>%
总结(mpg=n())%>%
解组()%>%
变异(mpg.gr=mpg/(和(mpg))
#>#tibble:6 x 4
#>赛尔am mpg mpg.gr
#>
#> 1 4 0 3 0.0938
#> 2 4 1 8 0.25
#> 3 6 0 4 0.125
#> 4 6 1 3 0.0938
#> 5 8 0 12 0.375
#> 6 8 1 2 0.0625
请注意,由于
ungroup()
,比例是使用所有记录的计数来计算的,而不是像以前那样仅使用cyl
组中的记录。你能为一个或两个组提供一些样本输出吗?目前还不清楚你在问什么。对于每个组,你想要平均mpg?你所说的mpg比例是什么意思,因为它是一个连续变量可计算的,不是二进制的?不知道你所说的“不按频率”是什么意思,但可能只是-mtcars%>%groupby(cyl,am)%>%summary(mpg=mpg/sum(mpg))
虽然这在mtcars中没有意义。在另一个例子中,我的意思是:人口比例=一个城市的地区人口除以该城市的总人口。假设我有城市变量(包含5个城市的信息)和地区变量(一些城市有4个地区,一些城市有3个地区)@谢谢你们的帮助。但我想得到的是mpg的实际值(不是3$8)除以mpg的实际值之和。