我的数据框包含有关政治生涯的数据,例如唯一标识符(称为:* ui )列,用于每个政治家和选举任期(称为: electric_term *)。由于一个政治家可以在多个选举任期内当选,因此有多个行包含相同的ui。现在,我想在数据框中添加另一列,用于计算政治家再次当选的次数。
因此,例如,ui = 1的政治家连任了2次,因为他在3个选举任期中出现。我已经试过了
df %>% count(ui)
但这只给出了一个表,不能添加到我的 Dataframe 。先谢了!
ckocjqey1#
我们可以使用base R
base R
df$reelected <- with(df, ave(ui, ui, FUN = length)-1)
> df ui electoral reelected 1 1 1 2 2 1 2 2 3 1 3 2 4 2 2 0 5 3 7 1 6 3 9 1
df <- structure(list(ui = c(1, 1, 1, 2, 3, 3), electoral = c(1, 2, 3, 2, 7, 9)), class = "data.frame", row.names = c(NA, -6L))
pbossiut2#
mydf <- tibble::tribble(~ui, ~electoral, 1, 1, 1, 2, 1, 3, 2, 2, 3, 7, 3, 9) library(dplyr) df |> add_count(ui, name = "re_elected") |> mutate(re_elected = re_elected - 1) # A tibble: 6 × 3 ui electoral re_elected <dbl> <dbl> <dbl> 1 1 1 2 2 1 2 2 3 1 3 2 4 2 2 0 5 3 7 1 6 3 9 1
f5emj3cl3#
library(tidyverse) df %>% group_by(ui) %>% mutate(re_elected = n() - 1) # A tibble: 6 × 3 # Groups: ui [3] ui electoral re_elected <dbl> <dbl> <dbl> 1 1 1 2 2 1 2 2 3 1 3 2 4 2 2 0 5 3 7 1 6 3 9 1
3条答案
按热度按时间ckocjqey1#
我们可以使用
base R
数据
pbossiut2#
f5emj3cl3#