r - 具有组条件的累积 n_distinct
问题描述
我正在尝试构建一个列,其中包含该组至少访问过两次的不同 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
解决方案
我们可能会使用以下内容:
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, Link) 对,如果存在,则将 1 放入第二次访问。然后单独按 ID 分组,我们使用 cumsum。
推荐阅读
- docker - CircleCI 工作流程能否在第一步中创建 Docker 映像,然后在第二步中测试该 Docker 映像?
- sparql - 从 wikidata 获取数据的 SPARQL 查询不起作用
- git - 使用 Azure VM 的权限被拒绝错误 Git
- r - 替换一个数据集在另一个数据集中的出现
- javascript - JS中两个三元运算符如何协同工作?
- c# - 复合共享键和实体
- android-studio - Android工作室Java.lang.OutOfMemoryError
- python - Python创建增量文件夹
- arrays - 在 Fortran 90 中沿整个数组求和
- python - 卸载和安装 python,现在面临 pip 问题