【发布时间】:2017-11-18 19:21:18
【问题描述】:
我有一个数据框 (df1),其中包含一个 ID 变量和两个日期变量(dat1 和 dat2)。
我想对数据框进行子集化,以便获得 dat2 和 dat1 之间的差异小于或等于 30 天的观察结果。
我正在尝试使用 dplyr() 但我无法让它工作。
任何帮助将不胜感激。
起点(df):
df1 <- data.frame(ID=c("a","b","c","d","e","f"),dat1=c("01/05/2017","01/05/2017","01/05/2017","01/05/2017","01/05/2017","01/05/2017"),dat2=c("14/05/2017","05/06/2017","23/05/2017","15/10/2017","15/11/2017","15/12/2017"), stringsAsFactors = FALSE)
期望的结果(df):
dfgoal <- data.frame(ID=c("a","c"),dat1=c("01/05/2017","01/05/2017"),dat2=c("14/05/2017","23/05/2017"),newvar=c(13,22))
当前代码:
library(dplyr)
df2 <- df1 %>% mutate(newvar = as.Date(dat2) - as.Date(dat1)) %>%
filter(newvar <= 30)
【问题讨论】: