请考虑以下提示
df <- structure(list(reporter = structure(c(1L, 1L, 2L, 2L, 3L, 3L), .Label = c("NZL",
"SEN", "USA"), class = "factor"), partner = structure(c(1L, 2L,
1L, 2L, 1L, 2L), .Label = c("EUN", "WLD"), class = "factor"),
number_ntm = c(389, 20874, 0, 3933, 4, 30368)), row.names = c(NA,
-6L), class = c("tbl_df", "tbl", "data.frame"))
看起来像这样
# A tibble: 6 x 3
reporter partner number_ntm
<fct> <fct> <dbl>
1 NZL EUN 389
2 NZL WLD 20874
3 SEN EUN 0
4 SEN WLD 3933
5 USA EUN 4
6 USA WLD 30368
我想做的是:group_by记者,并在每个组中用合作伙伴EUN的number_ntm除以合作伙伴WLD的number_ntm。 我想要一个非常通用的dplyr解决方案,并且在合作伙伴结构包含一些我不想包括的额外因素时也可以使用。 任何建议表示赞赏
答案 0 :(得分:1)
您可以按照akrun的建议进行操作,但是请指定伙伴,而不要使用“第一和最后”。
df1<-df %>%
group_by(reporter) %>%
mutate(new = number_ntm[partner=="EUN"]/number_ntm[partner=="WLD"])