仅当条件在r中跨时间有效时才进行筛选

仅当条件在r中跨时间有效时才进行筛选,r,dplyr,R,Dplyr,我想了解在按ID分组后如何使用过滤器功能。我想过滤DV始终小于0.1>0的ID。时间0是基线 以下是我的初始数据示例: 最终预期产出 伪造数据,因为我没有你的 dat% 分组依据(ID)%>% 过滤器(所有(时间初始时间))%>%选择(ID))) dplyr::group_by(dat,ID)%%>%dplyr::filter(all(TIME%filter(ID!=3)因此,如何将时间和DV链接到DV始终低于0.1.So的筛选主题,它基本上是检查r中所有时间点的值是否低于阈值,并且只有在满足

我想了解在按ID分组后如何使用
过滤器
功能。我想过滤DV始终小于0.1>0的ID。时间0是基线

以下是我的初始数据示例:

最终预期产出


伪造数据,因为我没有你的

dat%
分组依据(ID)%>%
过滤器(所有(时间<1 | DV<0.1))%>%
解组()
##tibble:6 x 3
#ID时间DV
#      
# 1     1     0 100   
# 2     1     1   0.01
# 3     1     2   0.01
# 4     2     0 100   
# 5     2     1   0.05
# 6     2     2   0.09
阈值=0.1
初始时间=0
过滤器(dat,((DV<阈值)|(时间==初始时间))和
(!ID%在%不同(筛选器(dat,(DV>阈值)和
(时间>初始时间))%>%选择(ID)))

dplyr::group_by(dat,ID)%%>%dplyr::filter(all(TIME<1 | DV<0.1))
请不要发布代码/数据/错误的图像:无法复制或搜索(SEO),它会破坏屏幕阅读器,并且可能不适合某些移动设备。参考:(和)。请直接包括代码、控制台输出或数据(例如,
dput(head(x))
data.frame(…)
)来澄清:
dplyr::group_by(dat,ID)%%>%dplyr::filter(all(TIME<1 | DV<0.1))
dplyr::group_by(ID)%%>%dplyr::filter(all(TIME>0 | DV<0.1))
?因为我想要时间>0和DV,你试过了吗?你的第二个逻辑是反向的。第一个逻辑是“DV小于0.1或时间为0”。因此,这是一个
数据。因此,我的目标是确定DV始终低于0.1的权重。在这种情况下,
ID==3
DV在
TIME==3
时大于0.1,因此我可以得出结论,在40-60之间,它总是低于0.1,而对于100,它可能总是低于0.1。这有用吗?如何实现此条件?所需的输出是
dat%>%filter(ID!=3)
因此,如何将时间和DV链接到DV始终低于0.1.So的筛选主题,它基本上是检查r中所有时间点的值是否低于阈值,并且只有在满足此条件时才过滤主题。只使用代码的答案几乎总是可以通过添加一些关于它们如何工作以及为什么工作的解释来改进。虽然此代码可以解决问题,如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。
THRESHOLD = 0.1
INITIAL_TIME = 0
filter(dat, ((DV < THRESHOLD) | (TIME == INITIAL_TIME)) & 
    (!ID %in% distinct(filter(dat,(DV > THRESHOLD) & 
    (TIME > INITIAL_TIME)) %>% select(ID))))