我有一个包含以下定义列的数据框。我提供了一组示例,与此类似,我有许多国家有贷款金额和性别变量
country loan_amount gender
1 Austia 175 F
2 Austia 100 F
3 Austia 825 M
4 Austia 175 F
5 Austia 1025 M
6 Austia 225 F
在这里,我需要按国家/地区进行分组,然后针对每个国家/地区,我需要在新列中按性别计算贷款百分比,以便新列将具有该国家贷款总额的男性百分比以及贷款总额中的女性百分比为那个国家。我需要做两个group_by函数,首先将所有国家组合在一起,然后在该组性别之后计算贷款百分比。
Total loan amount = 2525
female_prcent = 175+100+175+225/2525 = 26.73
male_percent = 825+1025/2525 = 73.26
输出应如下:
country female_percent male_percent
1 Austia 26.73 73.26
我想在R中尝试这个。我尝试了下面的函数,但是我的R会话没有产生任何结果而且它正在终止。
df %>%
group_by(country, gender) %>%
summarise_each(funs(sum))
有人可以帮我实现这个输出吗?我认为这可以通过使用dplyr函数来实现,但我很感兴趣。
答案 0 :(得分:1)
我们可以尝试questionr
包中的加权表:
library(questionr)
with(df, wtd.table(country, gender, weights = round(100 * loan_amount/sum(loan_amount), 2)))
F M
Austia 26.73 73.26