R中一列中两个较高数字之间的差异
Difference between two higher numbers in a column in R
我有一个这样的数据框:
NUM_TURNO CODIGO_MUNICIPIO SIGLA_PARTIDO SHARE
1 1 81825 PPB 38.713318
2 1 81825 PMDB 61.286682
3 1 09717 PMDB 48.025900
4 1 09717 PL 1.279217
5 1 09717 PFL 50.694883
6 1 61921 PMDB 51.793868
这是巴西的 data.frame 选举。按 NUM_TURNO 和 CODGIDO_MUNICIPIO 分组我想比较每个城市和回合(1 或 2)中投票最多的第一和第二政治的份额,并创建一个新列。
我有什么问题要做什么?我不知道如何计算两个最大票数的差异。
例如,对于第一种情况,我想创建一些东西来区分 61.286682 和 38.713318 = 22.573364 等等。
像这样:
df %>%
group_by(NUM_TURNO, CODIGO_MUNICIPIO) %>%
mutate(Diff = HIGHER SHARE - 2º HIGHER SHARE))
您可以按 Share
排列数据框,然后 slice
前两个值。然后您可以使用 summarise
来获取每个组的值之间的差异:
library(dplyr)
df %>%
group_by(NUM_TURNO, CODIGO_MUNICIPIO) %>%
arrange(desc(Share)) %>%
slice(1:2) %>%
summarise(Diff = -diff(Share))
您还可以使用 dplyr
中的 top_n
进行分组和汇总。请记住,在您提供的数据中,如果您将 diff
与单个值一起使用,则会在 summarize
中出现错误,因此使用 ifelse
.
df %>%
group_by(NUM_TURNO, CODIGO_MUNICIPIO) %>%
top_n(2, SHARE) %>%
summarize(Diff = ifelse(n() == 1, NA, diff(SHARE)))
# A tibble: 3 x 3
# Groups: NUM_TURNO [?]
NUM_TURNO CODIGO_MUNICIPIO Diff
<dbl> <dbl> <dbl>
1 1 9717 2.67
2 1 61921 NA
3 1 81825 22.6
我有一个这样的数据框:
NUM_TURNO CODIGO_MUNICIPIO SIGLA_PARTIDO SHARE
1 1 81825 PPB 38.713318
2 1 81825 PMDB 61.286682
3 1 09717 PMDB 48.025900
4 1 09717 PL 1.279217
5 1 09717 PFL 50.694883
6 1 61921 PMDB 51.793868
这是巴西的 data.frame 选举。按 NUM_TURNO 和 CODGIDO_MUNICIPIO 分组我想比较每个城市和回合(1 或 2)中投票最多的第一和第二政治的份额,并创建一个新列。
我有什么问题要做什么?我不知道如何计算两个最大票数的差异。
例如,对于第一种情况,我想创建一些东西来区分 61.286682 和 38.713318 = 22.573364 等等。
像这样:
df %>%
group_by(NUM_TURNO, CODIGO_MUNICIPIO) %>%
mutate(Diff = HIGHER SHARE - 2º HIGHER SHARE))
您可以按 Share
排列数据框,然后 slice
前两个值。然后您可以使用 summarise
来获取每个组的值之间的差异:
library(dplyr)
df %>%
group_by(NUM_TURNO, CODIGO_MUNICIPIO) %>%
arrange(desc(Share)) %>%
slice(1:2) %>%
summarise(Diff = -diff(Share))
您还可以使用 dplyr
中的 top_n
进行分组和汇总。请记住,在您提供的数据中,如果您将 diff
与单个值一起使用,则会在 summarize
中出现错误,因此使用 ifelse
.
df %>%
group_by(NUM_TURNO, CODIGO_MUNICIPIO) %>%
top_n(2, SHARE) %>%
summarize(Diff = ifelse(n() == 1, NA, diff(SHARE)))
# A tibble: 3 x 3
# Groups: NUM_TURNO [?]
NUM_TURNO CODIGO_MUNICIPIO Diff
<dbl> <dbl> <dbl>
1 1 9717 2.67
2 1 61921 NA
3 1 81825 22.6