gpt4 book ai didi

r - 检查计数器变量中的步骤是否丢失

转载 作者:行者123 更新时间:2023-12-02 17:39:44 25 4
gpt4 key购买 nike

我有一个数据文件,每个参与者一行(名为 1-x,基于他们参与的研究)。我想检查数据集中是否存在所有参与者。这是我的玩具数据集,personid 是参与者,study 是他们参加的研究。

df <- read.table(text = "personid study measurement
1 x 23
2 x 32
1 y 21
3 y 23
4 y 23
6 y 23", header=TRUE)

看起来像这样:

  personid study measurement
1 1 x 23
2 2 x 32
3 1 y 21
4 3 y 23
5 4 y 23
6 6 y 23

所以对于 y,我缺少参与者 2 和 5。如何自动检查?我尝试添加一个计数器变量并将该计数器变量与参与者 ID 进行比较,但是一旦缺少一个参与者,比较就毫无意义,因为对齐已关闭。

df %>% group_by(study) %>% mutate(id = 1:n(),check = id==personid)
Source: local data frame [6 x 5]
Groups: date [2]

personid study measurement id check
<int> <fctr> <int> <int> <lgl>
1 1 x 23 1 TRUE
2 2 x 32 2 TRUE
3 1 y 21 1 TRUE
4 3 y 23 2 FALSE
5 4 y 23 3 FALSE
6 6 y 23 4 FALSE

最佳答案

假设您的 personid 是连续的,那么您可以使用 setdiff 来执行此操作,即

library(dplyr)

df %>%
group_by(study) %>%
mutate(new = toString(setdiff(max(personid):min(personid), personid)))

#Source: local data frame [6 x 4]
#Groups: study [2]

# personid study measurement new
# <int> <fctr> <int> <chr>
#1 1 x 23
#2 2 x 32
#3 1 y 21 5, 2
#4 3 y 23 5, 2
#5 4 y 23 5, 2
#6 6 y 23 5, 2

关于r - 检查计数器变量中的步骤是否丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43217340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com