gpt4 book ai didi

r - 从数据框中有条件地选择重复测量

转载 作者:行者123 更新时间:2023-12-04 12:09:51 26 4
gpt4 key购买 nike

我有在可变数量的时间点对每个对象 (id) 进行重复测量的数据。我想为每个主题保留两行,时间点 == 0 和最接近 4 的时间点。在具有两个候选时间点与 4 等距的行的情况下,例如(3, 5),我想选最低的(3)。

如下图的“选择”列所示,带有“x”的行将不会保留。

 dat <- structure(list(id = c(172507L, 172507L, 172507L, 172525L, 172525L, 
172525L, 172526L, 172526L, 172526L, 172527L, 172527L, 172527L,
172527L, 172527L), timepoint = c(0L, 2L, 6L, 0L, 4L, 5L, 0L,
5L, 2L, 2L, 3L, 5L, 6L, 0L)), class = "data.frame", row.names = c(NA,
-14L))

enter image description here

最佳答案

我们可以通过 idtimepoint安排,并为每个组选择 timepoint == 0 时的第一次出现> 和 4 - timepoint 之间的最小绝对值。由于我们按 timepoint 排列,which.min 将选择第一个具有较低值的 timepoint(在平局的情况下)。

library(dplyr)
dat %>%
arrange(id, timepoint) %>%
group_by(id) %>%
slice(c(which.max(timepoint == 0), which.min(abs(4- timepoint))))

# id timepoint
# <int> <int>
#1 172507 0
#2 172507 2
#3 172525 0
#4 172525 4
#5 172526 0
#6 172526 5
#7 172527 0
#8 172527 3

关于r - 从数据框中有条件地选择重复测量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55961316/

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