[英]Finding days between in R
我有一個包含以下內容的數據框
Date Comments failure #ofdays
2014-10-25 abc 0
2014-10-30 def 1
2014-11-10 ghi 0
2014-11-15 lmo 0
依此類推...(它有更多行)。 我正在嘗試編寫R代碼以實現填充#of days列,如下所示:
Date Comments failure #ofdays
2014-10-25 abc 0 0
2014-10-30 def 1 0
2014-11-10 ghi 0 10
2014-11-15 lmo 0 15
因此,基本上,如果發生故障,則應將天數重置為0。否則,它應保留自上次故障以來的累積天數。 我努力了
no.of.days<-ifelse(failure==1,0, difftime((Date),lag(Date,1,default=0))+lag(no.of.days,1)
但是我得到了輸出的垃圾值。 它給了我30,000+天的產出。 但是,如果出於測試目的而在兩個值之間運行difftime,我將正確地獲得#天。 你們中的一個可以看看並讓我知道我在想什么嗎? 提前致謝!
你可以試試:
ave(as.numeric(df$Date),cumsum(df$failure!=0),FUN=function(x) x-x[1])
#[1] 0 0 11 16
請注意,2014年10月30日至2014年11月10日之間有11天(問題中沒有10天)。
數據
df<-structure(list(Date = structure(c(16368, 16373, 16384, 16389), class = "Date"),
Comments = c("abc", "def", "ghi", "lmo"), failure = c(0L,
1L, 0L, 0L)), .Names = c("Date", "Comments", "failure"), row.names = c(NA,
-4L), class = "data.frame")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.