Dplyr:分组依据和组内操作 请考虑下面的TiBLUE/P> 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")) df

Dplyr:分组依据和组内操作 请考虑下面的TiBLUE/P> 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")) df,r,dplyr,R,Dplyr,您可以按照akrun的建议进行操作,但是指定合作伙伴,而不是使用first和last df1<-df %>% group_by(reporter) %>% mutate(new = number_ntm[partner=="EUN"]/number_ntm[partner=="WLD"]) df1% 组别(记者)%>% 变异(新=编号\u ntm[合作伙伴==“EUN”]/编号\u ntm[合作伙伴==“WLD”]) 如果只有两个级别df%>%group\u by

您可以按照akrun的建议进行操作,但是指定合作伙伴,而不是使用first和last

df1<-df %>%
   group_by(reporter) %>%
   mutate(new = number_ntm[partner=="EUN"]/number_ntm[partner=="WLD"])
df1%
组别(记者)%>%
变异(新=编号\u ntm[合作伙伴==“EUN”]/编号\u ntm[合作伙伴==“WLD”])

如果只有两个级别
df%>%group\u by(reporter)%%>%mutate(new=first(number\u ntm)/last(number\u ntm))
df1<-df %>%
   group_by(reporter) %>%
   mutate(new = number_ntm[partner=="EUN"]/number_ntm[partner=="WLD"])