Bonjour,
J'ai un problème que je n'arrive pas à résoudre. J'ai dans ma table R des montants mis sous forme de triangle.
J'ai sur ma ligne quelque chose comme ci-dessous, soit par exemple de Janvier 2017 à Mars 2018 :
Jan Feb Mar ... Nov Dec Jan Feb Mar.
Les données sont en dessous du mois auxquelles elles correspondent mais l'année n'est pas mentionnée devant les mois (Jan17 ou Jan 18 par exemple), ce serait top simple.
Je cherche un moyen de récupérer en fonction du nombre de mois entre Janvier2017 et Mars2018, les données du mois de Mars2018.
Mon problème est que je en vois pas comment gérer cela surtout à cause des NA.
Ce code me permet de récupérer la durée entre deux mois et le mois correspondant. J'utilise ensuite le mois trouvé pour faire une recherche sur mon dataframe.
Juste que là tout va bien mais je suis bloqué parce que je ne vois pas comment indiquer exactement les données de quelle colonne je veux prendre à mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #Je fais la différence en nombre de mois entre mes 2 dates Duree <- floor(time_length(interval(DateDebut, DateFin), unit = "months")) + 1 ##je récupère le nom du Mois MoisFin <- if(Duree > 12) { Duree - 12 }else { Duree } MoisFin <- month.abb[MoisFin] #Je fais une recherche sur mon data.frame avec le nom du mois trouvé tab <- as.data.frame(which(data==MoisFin, arr.ind = TRUE))
Le data.frame tab me donne ça comme réponse et j'ai besoin que des données de la colonne 29 qui correspondent au mois de Mars 2018 aujourd'hui mais l'année prochaine, les données du mois de Mars 2018 seront en colonne 9.
Je ne vois vraiment pas comment faire cette sélection.
Et les colonnes sont parfois espacées avec des NA, je les garde parce que les enlever ne me permet pas non plus de résoudre mon problème et aussi parce qu'elles ne gênent pas le which.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 row col 1 9 8 2 29 8 3 9 29 4 29 29
J'espère que je me suis fait comprendre.
Merci par avance
Partager