1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
library(dplyr)
library(stringr)
library(purrr)
#df le dataframe
df <- df %>% mutate(periodenum= as.integer(str_replace(periode,'T',''))) # on crée une colonne periode numérique en supprimant le T et en castant en integer
list_num <- split.data.frame(df,df$num) #on crée une liste de dataframe par le num (ton numero individu)
## création du dataframe attendu
## pour les fonctions map voir doc du package purrr
## la fonction lag() permet l'accès à la valeur précédente de la variable
res <-map_df(list_num,~.x %>% mutate(tx=ifelse(periodenum - lag(periodenum) == 1,(hauteur-lag(hauteur))/lag(hauteur),NA)) ) |
Partager