在dplyr组中应用函数

在dplyr组中应用函数,r,dataframe,dplyr,R,Dataframe,Dplyr,我正试图使用选举方案中的一个函数来计算政党在市政委员会中应该拥有的席位数量,并且有一个按照市政当局排序的长格式数据框架 但是,我似乎无法使函数在组内工作,而是出现以下错误: 席位错误(政党=授权$party,选票=授权$Voces,n_席位=25,:每个政党名称必须唯一 我已经尝试使用do()和group_map(),因为这是这个线程中建议的:,而summary不起作用,因为函数应该返回几行值,而不是一个summary值 我还尝试使用联盟包中的dHondt()-函数,但没有效果,只是出现了另一个

我正试图使用选举方案中的一个函数来计算政党在市政委员会中应该拥有的席位数量,并且有一个按照市政当局排序的长格式数据框架

但是,我似乎无法使函数在组内工作,而是出现以下错误:

席位错误(政党=授权$party,选票=授权$Voces,n_席位=25,:每个政党名称必须唯一

我已经尝试使用do()和group_map(),因为这是这个线程中建议的:,而summary不起作用,因为函数应该返回几行值,而不是一个summary值

我还尝试使用
联盟
包中的
dHondt()
-函数,但没有效果,只是出现了另一个错误:

使用do时:

错误:结果1、2必须是数据帧,而不是整数

使用组映射时:

错误:无法将整数向量转换为函数

有人知道如何解决这个问题吗?:)

一些示例代码:

library(tidyverse)
library(electoral)    
mandates <- data.frame(municipality = c("A","A","A","B","B","B"),
                           party = c("1","2","3","1","2","3"),
                           votes = c(125,522,231,115,321,12),
                           seats = c(25,25,25,25,25,25)) 
    mandates <- mandates %>% group_by(municipality) %>% 
            group_map(seats_ha(parties = mandates$party, votes = mandates$votes, n_seats = 25, method = "dhondt"))
库(tidyverse)
图书馆(选举事务)
授权%
集团地图(席位(各方=授权$party,票数=授权$Voces,n席位=25,method=“dhondt”))

最好我希望它为
n_seats
使用seats变量,因为每个市都有不同数量的座位,但是让它使用25个座位集是一个好的开始

在这种情况下,您可以简单地使用
mutate

mandates %>% group_by(municipality) %>% 
 mutate(x = seats_ha(parties = party, votes = votes, n_seats = 25, method = "dhondt"))
    # A tibble: 6 x 5
# Groups:   municipality [2]
  municipality party votes seats     x
  <fct>        <fct> <dbl> <dbl> <int>
1 A            1       125    25     3
2 A            2       522    25    15
3 A            3       231    25     7
4 B            1       115    25     6
5 B            2       321    25    19
6 B            3        12    25     0

谢谢,这正是我想要的!对于第二部分,您知道使用seats变量而不是固定25的简单方法吗?例如,如果市政B有27个席位而不是25个席位,请参阅我回答的第二部分,非常感谢!我回答得太快了:)这太完美了!
mandates %>% group_by(municipality, seats) %>% 
 mutate(x = seats_ha(parties = party, votes = votes, n_seats = seats[1], method = "dhondt"))