Messagepar alex josé » 20 Fév 2020, 14:15
Bonjour à tou.t.e.s
@François Bonnot
dput(dataframe) me renvoie dans la console mon jeu de données, j'ai choisi de vous présenter quatorze lignes représentées par la table test3 pour ne pas saturer votre écran.
library("tidyr")
test3 <- tibble(v1 = c("1000102771077 ", "200027298CPS*SV310153 20171025201710", "40004000351535100 0001001 00000000",
"4059997210271250 0021", "40799201709282017092812397112", "411999701001610613 ", "40004000351535100 0007001 00000000",
"200027274CPS*SV310055 20171001201709", "40004000111035100 0001001 00000000", "4059997110275200 0121",
"40799201709292017092970197712 ", "4109997110275200 012100030521223 ", "40004000111035100 0007001 00000000", "40004000111035100 0007001 00000000"),
v2 = c("100", "200", "400", "405", "407", "411", "400", "200", "400", "405", "407", "410", "400", "400"),
v3 = c(0, 0, "00", 0, 0, 0, "05", 0, "00", 0, 0, 0, "01", "05"))
test3_corr <- split(test3,cumsum(test3$v2 == "400"))
serie <- NULL
for (i in 1:length(test3_corr)) {
x <- test3_corr[[i]]
if (x$v3[1]=="00") serie <- x[-1,]
else test3_corr[[i]] <- rbind(x, serie)
}
table3_corr <- do.call(rbind, test3_corr)
# en regardant la sortie, je me rends compte d'une anomalie entre la ligne 7 et la ligne 9 de table3_corr comparativement à la structure de test3.
# effectivement, la ligne 8 de table3_corr (avec v2=200) apparait entre les 400 et 405 (ici, cette anomalie est visible une fois). Mais sur ma table
# ca cas est perceptible plusieurs fois. Ce qui ne devrait pas être le cas. 200 est soit avant 400, soit après 400. Lorsqu'il est juste apres 400, il ne
# peut avoir à sa suite (ie consecutivement) une 405 ou une 406. Ce que je souhaitais c'est la sortie test4 suivante:
test4 <- tibble(v1 = c("1000102771077 ", "200027298CPS*SV310153 20171025201710", "40004000351535100 0001001 00000000", "4059997210271250 0021", "40799201709282017092812397112",
"411999701001610613 ", "40004000351535100 0007001 00000000", "4059997210271250 0021", "40799201709282017092812397112", "411999701001610613 ", "200027274CPS*SV310055 20171001201709",
"40004000111035100 0001001 00000000", "4059997110275200 0121", "40799201709292017092970197712 ", "4109997110275200 012100030521223 ", "40004000111035100 0007001 00000000",
"4059997110275200 0121", "40799201709292017092970197712 ", "4109997110275200 012100030521223 ", "40004000111035100 0007001 00000000",
"4059997110275200 0121", "40799201709292017092970197712 ", "4109997110275200 012100030521223 "),
v2 = c("100", "200", "400", "405", "407", "411", "400", "405", "407", "411", "200", "400", "405", "407", "410", "400", "405", "407", "410", "400", "405", "407", "410" ),
v3 = c(0, 0, "00", 0, 0, 0, "05", 0, 0, 0, 0, "00", 0, 0, 0, "01", 0, 0, 0, "05", 0, 0, 0))
rm(test3, test3_corr, table3_corr, test4)