簡體   English   中英

在R中尋找天數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM