R-计算相对百分比

问题描述 投票:0回答:1

我有一个示例数据框,如下所示。我无法提供真实的数据框,因为它是机密的:

Sex Country Voted
0   USA     0
0   USA     1
1   USA     1
1   USA     0

性别0 =男性,1 =女性

已投票0 =未投票,1 =已投票

我对数据框执行了以下操作:

df %>%
   group_by(Sex, Country, Voted) %>%
   summarise(n = n())

哪个给出以下(示例)输出:

Sex Country Voted N
0   USA     0     300
1   USA     0     200
0   USA     1     100
1   USA     1     400
0   UK      0     200
1   UK      0     300
0   UK      1     250
1   UK      1     250

我现在正在尝试计算相对百分比;目的是计算在[[每个国家中有多少[的人已投票(或未投票)。因此,例如,在美国,男性投票的百分比为100/400 = 25%,因为我们在美国共有400位男性。它不是100/1000(样本中来自美国的总人数),也不是100/2000(样本总数)。

最快的计算方法是什么?我尝试使用prop.table,但它告诉我:Error in FUN(X[[i]], ...) :

only defined on a data frame with all numeric variables

[我不准备将Country变量更改为数字,因为我在数据框中有50多个国家/地区(问题中此处显示的部分仅是示例)。

r
1个回答
0
投票
library(dplyr) df %>% group_by(Sex, Country, Voted) %>% summarise(n = n()) %>% mutate(n = n/sum(n))
© www.soinside.com 2019 - 2024. All rights reserved.