« Questions-r » : différence entre les versions

90 octets ajoutés ,  11 janvier 2022
emojisation
Aucun résumé des modifications
(emojisation)
Ligne 3 : Ligne 3 :
== Manipulation d'un nom de fichier ==
== Manipulation d'un nom de fichier ==


'''Question posée par martiste'''
🙋 '''Question posée par martiste'''


Comment récupérer un morceau du nom du fichier ? Par exemple à partir de '''"zarsqdfqsfd33vezre20618402.csv''' on veut récupérer '''20618402'''.
Comment récupérer un morceau du nom du fichier ? Par exemple à partir de '''"zarsqdfqsfd33vezre20618402.csv''' on veut récupérer '''20618402'''.


'''Réponse de lvaudor et sdunesme'''
🧑‍🏫 '''Réponse de lvaudor et sdunesme'''


Combi des '''expressions régulières''' et de la fonction '''basename()''':
Combi des '''expressions régulières''' et de la fonction '''basename()''':
Ligne 20 : Ligne 20 :
== Reformattage d'un fichier en "longueur" ==
== Reformattage d'un fichier en "longueur" ==


'''Question de mcottet'''
🙋 '''Question de mcottet'''


J'ai une bdd avec plusieurs variables catégorielles qui portent une info similaire (est ce que les gens ont vu l'espèce A un peu, bcp, passionnément, à la folie ; idem pour l'espèce B, C...). Et j'aimerais faire une somme pour savoir combien de fois l'individu 1 a répondu un peu à l'ensemble des espèces proposées, bcp à l'ensemble des espèces...
J'ai une bdd avec plusieurs variables catégorielles qui portent une info similaire (est ce que les gens ont vu l'espèce A un peu, bcp, passionnément, à la folie ; idem pour l'espèce B, C...). Et j'aimerais faire une somme pour savoir combien de fois l'individu 1 a répondu un peu à l'ensemble des espèces proposées, bcp à l'ensemble des espèces...
il y a 18 espèces (donc 18 variables)
il y a 18 espèces (donc 18 variables)


'''Réponse de lvaudor'''
🧑‍🏫 '''Réponse de lvaudor'''


'''tidyr::pivot_longer()'''
'''tidyr::pivot_longer()'''
Ligne 40 : Ligne 40 :
(mais c'était moins explicite comme nom)
(mais c'était moins explicite comme nom)


'''Question de martiste'''
🙋  '''Question de martiste'''


J'arrive à aller chercher différents fichiers excel et à les "rbind" avec ça :
J'arrive à aller chercher différents fichiers excel et à les "rbind" avec ça :
Ligne 95 : Ligne 95 :
== Complétion des données d'une série temporelle ==
== Complétion des données d'une série temporelle ==


'''Question de Théo'''
🙋 '''Question de Théo'''


j'ai une série temporelle de hauteurs d'eau à pas de temps 15 min, mais il y a plein de trous dedans et je voudrais la compléter, en ajoutant l'heure manquante, et la hauteur d'eau manquante (moyenne de t-15 et t+15 si t est la valeur manquante).  
j'ai une série temporelle de hauteurs d'eau à pas de temps 15 min, mais il y a plein de trous dedans et je voudrais la compléter, en ajoutant l'heure manquante, et la hauteur d'eau manquante (moyenne de t-15 et t+15 si t est la valeur manquante).  


'''Réponse de martiste'''
🧑‍🏫 '''Réponse de martiste'''


il faut que tu commences par te créer un index de temps à l'intervalle voulu, depuis ta première valeur jusqu'à la dernière, à laquelle tu joins ton jeu de données réel. Les trous vont alors apparaître en 'NA'. Et si tu n'as que quelques trous de jamais plus de 2 intervalles, tu peux utiliser la fonction zoo::na_approx() qui fera l'affaire...
il faut que tu commences par te créer un index de temps à l'intervalle voulu, depuis ta première valeur jusqu'à la dernière, à laquelle tu joins ton jeu de données réel. Les trous vont alors apparaître en 'NA'. Et si tu n'as que quelques trous de jamais plus de 2 intervalles, tu peux utiliser la fonction zoo::na_approx() qui fera l'affaire...
Ligne 121 : Ligne 121 :
== Programmation fonctionnelle ==
== Programmation fonctionnelle ==


'''Question de martiste'''
🙋 '''Question de martiste'''


J'ai un jeu de données avec des températures à pas de temps horaire, le tout sur plusieurs années (et plusieurs stations). J'aimerais connaître, pour chaque année et pour chaque station, le nombre de séquences où la température a dépassé les 19°C, ainsi que la durée de la séquence la plus longue. Avec une boucle, j'aurais créé un nouveau champ pour lequel j'incrémente une valeur de séquence à chaque fois que T>19 et que T-1<19. Je regarde la valeur max de ma séquence, et la longueur max de ces séquences également. Mais comment faire sans boucle ?
J'ai un jeu de données avec des températures à pas de temps horaire, le tout sur plusieurs années (et plusieurs stations). J'aimerais connaître, pour chaque année et pour chaque station, le nombre de séquences où la température a dépassé les 19°C, ainsi que la durée de la séquence la plus longue. Avec une boucle, j'aurais créé un nouveau champ pour lequel j'incrémente une valeur de séquence à chaque fois que T>19 et que T-1<19. Je regarde la valeur max de ma séquence, et la longueur max de ces séquences également. Mais comment faire sans boucle ?


'''Réponse de lvaudor'''
🧑‍🏫 '''Réponse de lvaudor'''


<syntaxhighlight lang="r">
<syntaxhighlight lang="r">
Ligne 168 : Ligne 168 :
L'utilisation des formules c'est un subtilité introduite pour gérer les fonctions qui n'ont pas les arguments "dans l'ordre le plus pratique au regard de ce qu'on souhaite faire".  
L'utilisation des formules c'est un subtilité introduite pour gérer les fonctions qui n'ont pas les arguments "dans l'ordre le plus pratique au regard de ce qu'on souhaite faire".  


'''Question complémentaire'''
🙋 '''Question complémentaire'''


Et, pour finir, si je veux en sortir 1) le nombre total de séquences, et 2) la durée de la séquence la plus longue, est-ce que tu me conseilles de l'inclure dans la fct 'get_sequences', ou de repartir des résultats de cette fonction et d'alimenter une nouvelle ?
Et, pour finir, si je veux en sortir 1) le nombre total de séquences, et 2) la durée de la séquence la plus longue, est-ce que tu me conseilles de l'inclure dans la fct 'get_sequences', ou de repartir des résultats de cette fonction et d'alimenter une nouvelle ?


''' Réponse '''
'''🧑‍🏫 Réponse '''
Le nombre de total de séquences et la durée de la séquence la plus longue, ce sont des "agrégations" de ce que tu as fait avant. Or, il est possible que tu veuilles utiliser les résultats de get_sequences tels quels (par exemple pour des graphiques). Donc il vaut mieux faire en sorte que cette agrégation ait lieu dans un second temps => définition d'une nouvelle fonction par exemple.  
Le nombre de total de séquences et la durée de la séquence la plus longue, ce sont des "agrégations" de ce que tu as fait avant. Or, il est possible que tu veuilles utiliser les résultats de get_sequences tels quels (par exemple pour des graphiques). Donc il vaut mieux faire en sorte que cette agrégation ait lieu dans un second temps => définition d'une nouvelle fonction par exemple.