问题:(1)确定第一个实例的日期" O"然后(2)识别" A"的第一个实例。在给定的" O" (3)使用difftime计算时间差。 (类似于:Time Calculation Between Specific Events)
具体问题是(2),确定" A"的第一个实例。在给定的" O"。
之后包含日期和事件列的数据框(df)如下所示:
"Date" "Event"
"2000-09-08" "A"
"2000-09-11" "N"
"2000-09-12" "O"
"2000-09-13" "O"
"2000-09-14" "O"
"2000-09-15" "O"
"2000-09-18" "N"
"2000-09-19" "N"
"2000-09-20" "N"
"2000-09-21" "N"
"2000-09-22" "N"
"2000-09-25" "A"
"2000-09-26" "A"
"2000-09-27" "A"
"2000-09-28" "A"
"2000-09-29" "A"
"2000-10-02" "A"
"2000-10-03" "A"
例如,第一个" O"发生在2000-09-12和第一个" A"之后发生在2000-09-25。
至于代码: 这正确地识别了" O"
的第一个实例df$Date[df$Event=="O"] [1]
"2000-09-12" #correct
但这错误地识别出第一个" A" df,而不是" O"
之后的第一个df$Date[df$Event=="A"] [1]
"2000-09-12" ##WRONG, correct == "2000-09-25"
这标识了" A"的实例。这就是集合
中每个" O"的##df$Date[df$Event=="A"] [df$Event=="O"]
"2000-10-23" "2000-10-24" "2000-10-25" "2000-10-26" "2001-04-03" "2001-04-04" "2001-06-29"....
我只需要帮助写这个条件,找到给定的" O"之后的第一个A.为了让difftime给出正确的天数。
答案 0 :(得分:1)
这不需要对日期进行排序
date1 <- min(df$Date[df$Event == "O"])
date2 <- min(df$Date[df$Event == "A" & df$Date > date1])
difftime(date2, date1)
Time difference of 13 days