R 使用最早的日期时间切片行
我有一个数据框,我只想过滤与最早日期时间相对应的行。以下是我的数据帧:R 使用最早的日期时间切片行,r,dplyr,slice,R,Dplyr,Slice,我有一个数据框,我只想过滤与最早日期时间相对应的行。以下是我的数据帧: library(lubridate) df<-data.frame(ID=rep(1:2,5:6),DATETIME_OF_PROCEDURE=rep(c(ymd_hms("2013-03-16 03:00:42"), ymd_hms("2013-02-12 08:00:42"),
library(lubridate)
df<-data.frame(ID=rep(1:2,5:6),DATETIME_OF_PROCEDURE=rep(c(ymd_hms("2013-03-16 03:00:42"),
ymd_hms("2013-02-12 08:00:42"),
ymd_hms("2014-06-19 01:00:42"),
ymd_hms("2014-01-22 01:00:42"),
ymd_hms("2014-06-12 02:00:40")),
c(3,2,2,2,2)))
我尝试了以下方法,但它给出了一个空的数据帧
df %>%
arrange(DATETIME_OF_PROCEDURE) %>%
group_by(ID) %>%
slice(min(DATETIME_OF_PROCEDURE))
我还尝试了
slice(第一次(DATETIME\u OF_过程))
,但还是不起作用 既然您已经安排了,切片(1)
工作正常:
df %>%
group_by(ID) %>%
filter(DATETIME_OF_PROCEDURE == min(DATETIME_OF_PROCEDURE))
df %>%
arrange(DATETIME_OF_PROCEDURE) %>%
group_by(ID) %>%
slice(1)
其他使用which.min
,因为filter
采用索引:
df %>%
group_by(ID) %>%
slice(which.min(DATETIME_OF_PROCEDURE))
小心数据中的关联。如果要保留所有领带,请使用filter
两者都返回相同的值:
来源:本地数据帧[2 x 2]
组别:ID[2]
程序的ID日期时间\u
1 1 2013-02-12 09:00:42
2 2 2014-01-22 02:00:42
由于您已经安排了,切片(1)
可以正常工作:
df %>%
arrange(DATETIME_OF_PROCEDURE) %>%
group_by(ID) %>%
slice(1)
其他使用which.min
,因为filter
采用索引:
df %>%
group_by(ID) %>%
slice(which.min(DATETIME_OF_PROCEDURE))
小心数据中的关联。如果要保留所有领带,请使用filter
两者都返回相同的值:
来源:本地数据帧[2 x 2]
组别:ID[2]
程序的ID日期时间\u
1 1 2013-02-12 09:00:42
2 2 2014-01-22 02:00:42
正确的语法应该是df%%>%arrange(DATETIME\u OF_PROCEDURE)%%>%groupu by(ID)%%>%slice(1L)
但是slice
不会捕获领带。正确的语法应该是df%%>arrange(DATETIME\u OF_OF_PROCEDURE)%%>%groupu by(ID)%%slice(1L)
但是slice
不会捕获领带。