【发布时间】:2019-06-15 03:31:39
【问题描述】:
我正在尝试设置列(称为“组合”)以指示每个组(组)内所有者和负责人的组合信息。每个组中只有一个所有者,'Head' 基本上是每个组中具有最小 id 值的第一行。 如果 ID 被标记为所有者,则此组合列应标记为“1”,那么无论“头”中的信息如何,每个组中的其余 id 都将为 0。但是对于 ID 中没有任何 Owner 的组(即组内 owner 中的所有 0),则此列将采用 Head 列信息。我的数据看起来像这样,最后一列(合并)是预期的结果。
sample <- data.frame(Group = c("46005589", "46005589","46005590","46005591", "46005591","46005592","46005592","46005592", "46005593", "46005594"), ID= c("189199", "2957073", "272448", "1872092", "10374996", "1153514", "2771118","10281300", "2610301", "3564526"), Owner = c(0, 1, 1, 0, 0, 0, 1, 0, 1, 1), Head = c(1, 0, 0, 1, 0, 1, 0, 0, 1, 1), combined = c(0, 1, 1, 1, 0, 0, 1, 0, 1, 1))
> sample
Group ID Owner Head combined
1 46005589 189199 0 1 0
2 46005589 2957073 1 0 1
3 46005590 272448 1 0 1
4 46005591 1872092 0 1 1
5 46005591 10374996 0 0 0
6 46005592 1153514 0 1 0
7 46005592 2771118 1 0 1
8 46005592 10281300 0 0 0
9 46005593 2610301 1 1 1
10 46005594 3564526 1 1 1
我已经尝试了一些 dplyr 和 ifelse 子句,但它似乎没有给出我想要的输出。我应该如何重新编码这个专栏?谢谢。
【问题讨论】:
标签: r if-statement group-by dplyr