具有组条件的累积n_distinct

时间:2019-01-29 12:23:59

标签: r dplyr

我正在尝试创建一列,其中包含该组至少两次访问过的不同URL的累积数量。我该怎么办?

我的数据框看起来像这样:

ID Link                 RevisitedPages
1  example.org          0
1  example.org/whatever 0
1  example.org/blank    0
1  example.org/whatever 1
1  example.org/whatever 1
1  example.org/blank    2

1 个答案:

答案 0 :(得分:0)

我们可以使用以下内容:

df %>% group_by(ID, Link) %>% 
  mutate(RevisitedPages = 1 * (row_number() == 2)) %>%
  group_by(ID) %>% mutate(RevisitedPages = cumsum(RevisitedPages))

# A tibble: 6 x 3
# Groups:   ID [1]
#      ID Link                 RevisitedPages
#   <int> <fct>                         <dbl>
# 1     1 example.org                       0
# 2     1 example.org/whatever              0
# 3     1 example.org/blank                 0
# 4     1 example.org/whatever              1
# 5     1 example.org/whatever              1
# 6     1 example.org/blank                 2

通过这种方式,我们首先查看每个(ID,链接)对,然后将1进行第二次访问(如果存在)。然后,我们仅使用ID对ID进行分组。