【发布时间】:2021-08-31 08:30:54
【问题描述】:
我觉得这是一个基本问题,但我已经查看了关于 SO 的问题,这些问题涉及过滤一列日期,但只发现它只是最早或最新的问题(在我的情况下不是两者) .
我有一个纵向数据框,df2 皮质测量 (M1)、主题 ID (SubjID) 和日期 (SeshLab),如下所示(这只是一个虚拟数据框)
SubjID SeshLab M1
123456 2010-12-03 7.89
123456 2011-06-03 7.65
123456 2011-12-03 6.54
135791 2010-12-03 7.91
135791 2011-06-03 7.53
我尝试了filter 命令,但收到一个与向量相关的错误,提示输入不能是变量类型。
> df3 <- df2 %>%
+ group_by(SubjID) %>%
+ filter(n()>1) %>%
+ filter(min(SeshLab), max(SeshLab))
Error: Problem with `filter()` input `..1`.
x Input `..1` must be a logical vector, not a date.
ℹ Input `..1` is `min(SeshLab)`.
ℹ The error occurred in group 1: SubjID = "123456".
我已经完成了summarise,但我似乎也无法找到一种方法来保持皮质测量值的完整性。
> View(df3)
> df3 <- df2 %>%
+ group_by(SubjID) %>%
+ summarise(visitmin = min(SeshLab), visitmax = max(SeshLab))
SubjID visitmin visitmax
123456 2010-12-03 2011-12-03
135791 2010-12-03 2011-06-03
目标是获得如下所示的数据框:
SubjID SeshLab M1
123456 2010-12-03 7.89
123456 2011-12-03 6.54
135791 2010-12-03 7.91
135791 2011-06-03 7.53
提前致谢!
【问题讨论】:
-
您的标题“过滤掉”表明您想删除这些行,但我认为您想保留它们?
标签: r date filter dplyr tidyverse