2015-01-26 59 views
0

我有一個數據集,我需要計算過去有多少宿舍從現在開始,每個日期是。一季度等於92天。計算宿舍R代碼

我想我大部分的代碼都是正確寫入的,它的計算部分是錯誤的。

我可以剝離QTR的日子嗎?或者有更好的方法來計算宿舍。此外,我需要這樣做,而不使用自定義軟件包。因此,沒有lubridate,日期時間等

我希望得到這樣的數據幀(這些結果是由):

日期DIFF QTR

1 2014年6月24日342天4

2 1999年4月11日1201天137

3 1979-01-0113000天1254

相反,我得到這個:

日期DIFF QTR

1 2014年6月24日342天4天

2 1999年4月11日1201天137天

1979年3 -01-0113000天1254天

Date=c("2014-06-24","1999-04-11","1979-01-01") 
Quarter=as.Date(Date, origin="1970-01-01") 

Fun=function(Quarter){ 
Today=Sys.Date() 
Diff=difftime(Today,Quarter[],units='days') 
QTR=floor(Diff/92) 
data.frame(Date,Diff,QTR) 
} 

Fun(Quarter) 
+0

你可以用'as.vector()'去掉diff的屬性' – 2015-01-26 18:31:04

回答

0

添加在as.numeric

Date=c("2014-06-24","1999-04-11","1979-01-01") 
Quarter=as.Date(Date, origin="1970-01-01") 

Fun=function(Quarter){ 
    Today=Sys.Date() 
    Diff=difftime(Today,Quarter[],units='days') 
    QTR=as.numeric(floor(Diff/92)) 
    data.frame(Date,Diff,QTR) 
} 

Fun(Quarter) 
R> Fun(Quarter) 
     Date  Diff QTR 
1 2014-06-24 216 days 2 
2 1999-04-11 5769 days 62 
3 1979-01-01 13174 days 143 
R> 
+0

非常感謝Stedy!我發誓,在決定發佈之前,我嘗試了沒有運氣的數字。這是顯而易見的解決方案! – April 2015-01-26 18:35:07