Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过dplyr中的另一个变量(而不是频率)计算R中的比例_R_Group By_Dplyr - Fatal编程技术网

如何通过dplyr中的另一个变量(而不是频率)计算R中的比例

如何通过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数据,我想计算每组cyl和am的mpg比例。如何计算它

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的实际值之和。