J'essaye de faire une comparaison du contenu de deux fichiers.
Le premier est ValBornage.txt qui contient le nom et les bornes min/max de n variables (ici 3, une ligne par variable, séparateur tabulation, colonne 4 et 5 correspondant aux valeurs min et max).
Le second fichier ValBornageSim.txt contient les valeurs simulées que je souhaite comparer aux bornes pour savoir si les valeur simulées sont ou non dans les bornes mentionnées dans Valbornage.txt.
J'ai écris un petit script R, mais je pense me planter quelque part dans les transtypage (l'exemple donné ne concerne que la borne min, mais c'est mauvais aussi pour mon test de borne max).
Voici le résultat sous R de mon script. J'affiche les résultats intermédiaires pour plus d'aisance dans la compréhension.
Code : Tout sélectionner
> # récupération des bornes du fichier ValBornage.txt
> bornes<-read.table("ValBornage.txt", dec="," ,sep="\t", header = FALSE )
> bornes<-as.matrix(bornes[,4:5])
> bornes<-t(matrix(as.double(bornes),ncol=2))
> bornes
[,1] [,2] [,3]
[1,] 0 2 1
[2,] 1500 15 3
>
> # on compte et adapte le nombre de variables du fichier
> nbvar <-3+length(bornes[1,])
>
> # on récupère les valeurs de simulation du fichier ValBornageSim.txt
> valBornageSim<-as.matrix(read.table("ValBornageSim.txt", dec="," ,sep="\t", header = FALSE))[,4:nbvar]
> valBornageSim<-matrix(as.double(valBornageSim),ncol=nbvar-3)
> valBornageSim
[,1] [,2] [,3]
[1,] 3515.664 0 9
[2,] 2613.000 16 0
[3,] 4888.900 0 0
[4,] NA 0 0
[5,] 7637.800 0 7
[6,] -10.000 0 0
[7,] 6197.700 0 0
[8,] 2532.190 5 0
[9,] 2182.580 0 NA
[10,] 604.530 0 0
[11,] 2117.000 0 -5
[12,] 3873.700 0 0
>
> # Les bornes min sont sur la première ligne de bornes (car transposée au début)
> valBornageSim >= bornes[1,]
[,1] [,2] [,3]
[1,] TRUE TRUE TRUE
[2,] TRUE TRUE FALSE
[3,] TRUE FALSE FALSE
[4,] NA TRUE TRUE
[5,] TRUE FALSE TRUE
[6,] FALSE FALSE FALSE
[7,] TRUE TRUE TRUE
[8,] TRUE TRUE FALSE
[9,] TRUE FALSE NA
[10,] TRUE TRUE TRUE
[11,] TRUE FALSE FALSE
[12,] TRUE FALSE FALSE
Là, dès ma première ligne, c'est incorrect. En effet, lors de la comparaison valBornageSim >= bornes[1,] à la valeur [1,2], je devrais avoir FALSE car 0 est inférieur à 2... enfin.. je crois.
Y'a t'il une bonne âme charitable qui pourrait m'éclairer sur le biais de ce script?
Merci d'avance...