【发布时间】:2020-07-07 14:21:27
【问题描述】:
我有如下所示的测试数据:
Group Value
1 a 1
2 a 2
3 a 3
4 a 4
5 b 5
6 b 2
7 b 3
8 c 6
9 c 7
10 c 8
11 c 3
12 c 6
13 d 9
14 d 10
15 e 9
我正在尝试创建一种矢量化方法,最好使用tidyverse 工具,该工具将创建一个额外的列,用于记录值是否存在于先前的分组中。下面是一个示例:
Group Value In_Last_Group
1 a 1 FALSE
2 a 2 FALSE
3 a 3 FALSE
4 a 4 FALSE
5 b 5 FALSE
6 b 2 TRUE
7 b 3 TRUE
8 c 6 FALSE
9 c 7 FALSE
10 c 8 FALSE
11 c 3 TRUE
12 c 5 TRUE
13 d 9 FALSE
14 d 10 FALSE
15 e 9 TRUE
我有一种方法可以使用标准 for 循环来做到这一点,但我有一个大数据集,我相信如果它被矢量化它会快得多。任何帮助将不胜感激。
这里是测试数据的dput:
structure(list(Group = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L,
3L, 3L, 3L, 3L, 3L, 4L, 4L, 5L), .Label = c("a", "b", "c", "d",
"e"), class = "factor"), Value = c(1, 2, 3, 4, 5, 2, 3, 6, 7,
8, 3, 6, 9, 10, 9)), .Names = c("Group", "Value"), row.names = c(NA,
-15L), class = "data.frame")
【问题讨论】: