【发布时间】:2019-11-27 09:00:01
【问题描述】:
我正在尝试使用选举包中的函数计算政党在市议会中应拥有的席位数量,并拥有一个按市政当局排序的长格式数据框。
但是,我似乎无法让该功能在组内工作,而是收到以下错误:
seats_ha 中的错误(派对 = 授权 $party,投票 = 授权 $votes,n_seats = 25,:每个派对名称必须是唯一的
我已尝试同时使用 do() 和 group_map(),因为这是该线程中建议的:Run a custom function on a data frame in R, by group,并且由于该函数预计返回多行值,而不是一个摘要,因此汇总不起作用价值。
我也尝试过使用coalitions 包中的dHondt()-function,但无济于事,只是另一个错误:
使用时:
错误:结果 1、2 必须是数据帧,而不是整数
使用 group_map 时:
错误:无法将整数向量转换为函数
有人知道如何解决这个问题吗? :)
一些示例代码:
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"))
最好我希望它使用 n_seats 的席位变量,因为每个城市的席位数量不同,但是让它与 25 个席位一起工作是一个好的开始。
【问题讨论】: