d_date <- "23-10-2015"
mypreibnr(d_date)
Et myibnr ne renvoie que yq. Le code ci-dessus me donne la sortieJe veux retourner un tableau de la fonction définie par l'utilisateur myibnr. J'ai des problèmes pour retourner le tableau
"2015-16 Q3"
J'ai présenté le code ci-dessous pour une plage de lignes. J'obtiens une erreur mettant en évidence les lignes paste0 dans la fonction myibnr. Je retourne l'exercice pour une date donnée. ibnr_data [, 7] est la colonne de date requise et ibnr_data [i, 8] est la colonne de sortie requise.
i=1
while(i<=nrow(ibnr_data)){
d_date <- ibnr_data[i,7]
mypreibnr(d_date)
i <- i+1
}
mypreibnr <- function(d_temp){
temp <- dmy(d_temp) # passed as t in myibnr(a,t)
b <- substr(year(temp),4,4)
myibnr(b,temp)
myibnr <- function(a, t){
temp1 <- dmy(str_replace("01-04-201x","x",a))
temp2 <- dmy(str_replace("30-06-201x","x",a))
temp3 <- dmy(str_replace("01-07-201x","x",a))
temp4 <- dmy(str_replace("30-09-201x","x",a))
temp5 <- dmy(str_replace("01-10-201x","x",a))
temp6 <- dmy(str_replace("31-12-201x","x",a))
temp7 <- dmy(str_replace("01-01-201x","x",a))
temp8 <- dmy(str_replace("31-03-201x","x",a))
yyy <- substr(t,1,3)
ay <- as.numeric(a)
ay_0 <- ay-1
ay_1 <- ay+1
qt <- which(unlist(list(between(t,temp1,temp2),between(t,temp3,temp4),between(t,temp5,temp6),between(t,temp7,temp8))))
if(qt<=3){
yq <- paste0(yyy,ay,"-",yyy,ay_1," Q",qt,sep="")
} else {
yq <- paste0(yyy,ay_0,"-",yyy,ay," Q",qt,sep="")
}
ibnr_data[i,8] <- yq
}
Il serait utile si vous fournissez un petit exemple reproductible et une sortie attendue basée sur cela. – akrun
Il est également recommandé d'inclure tous les packages que vous utilisez. dans ce cas 'stringr' et' dplyr' ou 'data.table'. – r2evans