【发布时间】:2021-06-29 12:41:28
【问题描述】:
我正在尝试使用以下语法使用 dplyr
Group_by(PersonID) %>%
mutate(event_number = ifelse(row_number()==2 & x > y, 1, 2)
我正在对这样的数据运行此命令并尝试获取偶数列中所示的输出
PersonID, X, Y , event_number
1, 5, 9, 1
1, 8, 5, 1
2, 3, 3, 1
2, 5, 9, 2
由于某些超出我的原因,event_number 显示为 2 表示所有内容。
任何帮助将不胜感激。
【问题讨论】:
-
如果没有看到您的数据,我们很难为您提供帮助。你能展示你的数据的一个小样本吗?就像 5 行,只有运行您的代码行所需的列。
-
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。
-
这意味着对于第 2 行,您的
x是<=y,因此您的条件对于每一行都是错误的。 -
我添加了虚拟数据以尝试更好地说明 - 感谢您的建议
-
为什么输出会是 1, 1, 1 和 2 ?例如 - 第一行应该是 2,因为行号是 1。