【发布时间】:2017-05-17 01:56:56
【问题描述】:
我正在尝试创建一个基于单独变量的观察模型数的新变量。
使用这个df:
help <- data.frame(
id = c(rep(05, times = 8), rep(10, times = 8), rep(12, times = 8)),
episode = c(rep(1, times = 4), rep(2, times =4), rep(3, times = 8), rep(1, times = 4), rep(2, times =4)),
provider = c(rep(70, times = 2), rep(80, times = 2), rep(70, times = 4), rep(30, times = 6), rep(40, times = 2), rep(70, times = 4), rep(10, times = 4)))
我希望创建一个新变量,provider_mode,它基于模式提供者,或者每集观察次数最多的提供者。
最终的 df 看起来像这样:
id episode provider provider_mode
5 1 70 70
5 1 70 70
5 1 80 70
5 1 80 70
5 2 70 70
5 2 70 70
5 2 70 70
5 2 70 70
10 3 30 30
10 3 30 30
10 3 30 30
10 3 30 30
10 3 30 30
10 3 30 30
10 3 40 30
10 3 40 30
12 1 70 70
12 1 70 70
12 1 70 70
12 1 70 70
12 2 10 10
12 2 10 10
12 2 10 10
12 2 10 10
这是迄今为止我想出的代码,但它只为我提供了每集中每个提供者的计数。我需要创建一个 mutate 命令,将提供者置于最多观察值,如果存在平局,则选择第一个提供者(例如,id 5 中的提供者 70)。
help %>% group_by(id, episode, provider) %>% mutate(provider_count = n())
【问题讨论】: