1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
library(tidyverse)
## data , colonnes A,B,C...
## data2 une colonne segment
#creation d'une fonction qui compte les occurrences
# les fonctions map prennent en général 2 arguments le premier une liste ou vecteur qui sera parcouru et appliqué au 2ieme argument (fonction ou formule)
## c'est l'équivalent d'une boucle for, la fonction renverra une liste ou un dataframe
## dans l'exemple ci-dessous la fonction map_int va renvoyer un vecteur d'entiers les valeurs que vous recherchez
compter <- function(segment,table_score ){
map_int(1:8, ## premier argument de la fonction map_int, on parcours le vecteur 1:8 (les 8 lettres des segments) que l'on applique au 2 ieme argument
~table_score %>% ## 2 ieme argument, la table qui contient valeurs des occurences
select(str_sub(segment,.x,.x)) %>% ## on selectionne la colonne qui correspond au caractere courant du segment
slice(.x) %>% # on selectionne le numéro de ligne qui correspond a la position du caractere courant dans le segement
pull()) %>% # on extrait la valeur recherchée
reduce(sum) # on somme on applique la fonction sum à la liste d'entier calculée
}
##génération d'un dataframe de 2 colonne ,segment et nb = valeur recherchée
## map_df génère un dataframe(ou tibble)
resultat <- map_df(data2$segments,~tibble(segments=.,nb=compter(.,table_score =data))) |
Partager