根據其他日期,我需要將數字轉換爲完整日期。由於我分析的動作是在變量「fechafin」後的一天開始的,我預測一天不是日期,所以我需要將它轉換爲日期,但是如果我說第7天它必須是:2014-07 -07,如果我說第三,必須在2014-08-03。根據其他日期將數字轉換爲日期
下面是一個例子:
final_muestra1<-data.frame(prior_day1=c(1:17))
fechafin=as.Date('2014-07-06')
所以我定義一個函數:
add.months= function(date,n) seq(date, by = paste (n, "months"), length = 2)[2]
和行動的第一天會是:
diapri<-as.numeric(format(fechafin+1, "%d"))
然後我需要計算我預測的日曆日期,所以我用ifelse(因爲我有NA我添加另一個ifelse)
final_muestra1$prior_day1_comp<-
ifelse(!is.na(final_muestra1$prior_day1),
ifelse(final_muestra1$prior_day1>=diapri,
fechafin-diapri+final_muestra1$prior_day1,
add.months((fechafin-diapri+final_muestra1$prior_day1),1)),NA)
我收到以下錯誤:
Error in seq.Date(date, by = paste(n, "months"), length = 2) :
'from' must be of length 1
我需要得到如下表:
prior_day1 prior_day1_comp
1 1 2014-08-01
2 2 2014-08-02
3 3 2014-08-03
4 4 2014-08-04
5 5 2014-08-05
6 6 2014-08-06
7 7 2014-07-07
8 8 2014-07-08
我沒有完全理解所期望的行爲是什麼(?是正確的,2014年7月7日是表中兩次),但出現錯誤,因爲'date'輸入到'add.months'是從2014-06-30到2014-07-16的日期向量,但必須是單個值,因爲它是'seq.Date'的開始。 – thie1e 2014-10-09 18:37:37
@ Khl4v,不,這是一個錯誤。這個想法非常簡單:保持一天,但根據一天更改月份。如果一天比迪普普里還要大,那麼保持月份的小一點,然後再增加一個月。謝謝 – GabyLP 2014-10-09 18:40:52
@akrun,嗨。有些月有30天 – GabyLP 2014-10-09 18:53:44