r ifelse дата без добавления дней

Мне нужно вычислить условие по дате столбца в R. Atable будет:

PIL_final1<-data.frame( prior_day1_cart=c(4,8),
                       prior_day1_comp=c('2014-06-03','2014-06-07'),
                       dia_lim_23_cart=c('201-07-30','201-07-30') )


PIL_final1$prior_day1_comp<-as.Date(PIL_final1$prior_day1_comp, format='%Y-%m-%d')
PIL_final1$dia_lim_23_cart<-as.Date(PIL_final1$dia_lim_23_cart, format='%Y-%m-%d')

Поэтому я использую ifelse:

PIL_final1$llamar_dia<-ifelse(PIL_final1$prior_day1_cart+6>23, 
                             PIL_final1$dia_lim_23_cart , 
                            PIL_final1$prior_day1_comp+6)

Но я получаю:

> PIL_final1
  prior_day1_cart prior_day1_comp dia_lim_23_cart llamar_dia
1               4      2014-06-03      0201-07-30      16230
2               8      2014-06-07      0201-07-30      16234

И если я сделаю:

> PIL_final1$prior_day1_comp+6

[1] "2014-06-09" "2014-06-13"

Я получаю правильные результаты.

Как я могу сделать ifelse и получить дату? Благодарю.

Также, если я попробую это, я все равно получу число (хотя и другое):

> PIL_final1$llamar_dia<-ifelse(PIL_final1$prior_day1_cart+6>23, 
+                              PIL_final1$dia_lim_23_cart , 
+                              as.Date(PIL_final$prior_day1_comp+6,format="%Y-%m-%d"))
> PIL_final1
  prior_day1_cart prior_day1_comp dia_lim_23_cart llamar_dia
1               4      2014-06-03      0201-07-30      16376
2               8      2014-06-07      0201-07-30      16377

Издание:

Также, если я сделаю это:

> as.Date(ifelse(PIL_final1$prior_day1_cart+6>23, PIL_final1$dia_lim_23_cart , 
+                PIL_final1$prior_day1_comp+6), format="%Y-%m-%d", origin="1970-01-01")

[1] "2014-06-09" "2014-06-13"

Я получаю правильные результаты, но если я заменю ifelse векторным результатом, я получу неправильные даты:

> PIL_final1$llamar_dia<-ifelse(PIL_final1$prior_day1_cart+6>23, 
+                              PIL_final1$dia_lim_23_cart , 
+                              PIL_final$prior_day1_comp+6)


 > as.Date(PIL_final1$llamar_dia, format="%Y-%m-%d", origin="1970-01-01")
[1] "2014-11-02" "2014-11-03"

Ответы на вопрос(1)

Ваш ответ на вопрос