1. Grâce à ce formulaire vous pouvez proposer une astuce ou un script sur R.
  2. Votre script doit pouvoir être lancé en l'état. Veuillez penser à :
    • inclure le chargement des "library" nécessaires
    • construire un petit jeu de données si besoin est.
    • commenter les lignes de codes pour en faciliter la compréhension.
  3. Le titre de votre script ou astuce doit être clair et explicite.
  4. Pensez à mettre votre code entre les balises [R] et [/R]; Pour cela, vous pouvez utiliser le bouton

Vous pouvez utiliser vos comptes Facebook, twitter ou google pour vous identifer (google est compatible yahoo, openID...)
L'ideal étant de vous connecter si vous avez un compte utilisateur, ou faire une demande de compte utilisateur si vous n'en avez pas encore.
Créer un compte va vous permettre de pouvoir éditer vos codes et de mettre en avant votre site internet.
Sinon vous pouvez soumettre anonymement en remplissant les champs ci-après.







Choisissez les catégories correspondantes à votre Code:

  • algorithmique
  • Analyse de survie
  • base indispensable
  • bayésien
  • configuration de R
  • exportation de données
  • fonctions utiles
  • graphique
  • importation de données
  • inférence
  • manipulation de données
  • message d'erreur
  • modélisation
  • Non classé
  • optimisation
  • planification
  • programmer avec R
  • regression linéaire
  • Test
  • tidyverse
  • Transformation de données


Comment comparer deux séries de valeurs avec R ?

0
dans algorithmique, base indispensable
Il est souvent utile de pouvoir comparer deux séries de données en algorithmique. Il existe quelques fonctions qui permettent ceci :

 
#Prenons 2 séries de valeurs
x=c(1,5,8,6,4,9,3,8)
y=c(5,5,4,3,8,7,7)
 


La fonction union(x,y) donne un vecteur composé des éléments qui se trouvent dans x ou dans y (union de x et de y).
 
union(x,y)  #donnera 1 5 8 6 4 9 3 7
union(y,x)  #donnera 5 4 3 8 7 1 6 9
 

NB : on obtient le même résultat avec
unique(c(x,y))


La fonction intersect(x,y) donne un vecteur composé des éléments qui se trouvent à la fois dans x et dans y (intersection de x et de y).
 
 intersect(x,y)  #donnera 5 8 4 3
 intersect(y,x)  #donnera 5 4 3 8
 


Le changement d’ordre des vecteurs x et y dans ces deux fonction ci-dessus n’affecte pas les éléments contenus dans les résultats (excepté leur ordre).


La fonction setdiff(x,y) donne tous les éléments de x qui ne sont pas dans y. Attention setdiff(y,x) donnera tous les éléments de y qui ne sont pas dans x, donc le résultat ne sera pas le même.
 
setdiff(x,y)  #donnera 1 6 9
setdiff(y,x)  #donnera 7
 


La fonction setequal(x,y) retourne la valeur TRUE si x est le même vecteur que y, FALSE sinon.
 
setequal(x,y)  #donnera FALSE
 


La fonction is.element(x,y) retourne un vecteur de la longueur de x composé des valeurs TRUE si l’élément de x se trouve également dans y (n’importe où) et FALSE sinon.
 
 is.element(x,y)  #donnera FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE 
#car les éléments qui sont à la 1ère, 4ème et 6ème place dans le vecteur x (c'est-à-dire 1, 6 et 9) ne sont #pas des éléments de y tandis que tous les autres le sont
 
is.element(y,x)  #donnera TRUE TRUE TRUE TRUE TRUE FALSE FALSE 
#car les 5 premiers éléments de y sont également des éléments de x tandis que les deux derniers ne le sont pas
 


Cette liste n’est pas exhaustive. Il existe d’autres fonctions qui peuvent servir telles que :
 
 ?all #qui permet de regarder si une condition est remplie à chaque fois
all(x<=y)  #renvoie TRUE si tous les éléments de x sont inférieurs ou égaux aux éléments de y qui sont à la même place dans le vecteur --> ATTENTION x et y doivent être de même longueur
 
 
 ?any #qui permet de regarder si une condition est remplie sur certains éléments de x et y
 any(x<=y)  #renvoie TRUE si certains des éléments de x sont inférieurs ou égaux aux éléments de y qui sont à la même place dans le vecteur --> ATTENTION x et y doivent être de même longueur 
 
#Exemples :
 x=c(4,5,6)
 y=c(4,6,5)
 
all(x<=y)   #renvoie FALSE car l'élément 3 de x (=6) est supérieur à l'élément 3 de y (=5)
any(x<=y) #renvoie TRUE car les éléments 1 et 2 de x (=4 et 5 respectivement) sont inférieurs ou égaux aux #éléments 1 et 2 de y (=4 et 6 respectivement)
 
 all(x>=y)   #renvoie FALSE car les éléments 1 et 2 de x (=4 et 5 respectivement) sont inférieurs ou égaux aux éléments 1 et 2 de y (=4 et 6 respectivement) 
 any(x>=y) #renvoie TRUE car  l'élément 3 de x (=6) est supérieur à l'élément 3 de y (=5) 
 



N’hésitez pas à tester différents vecteurs x et y et différentes comparaisons de x et de y afin de bien comprendre ce qu’il se passe avec ces différentes fonctions.

Proposé par Benjamin.

Ce script vous à rendu service? remerciez l'auteur en votant ici:
- ça ne sert à rien -- c\'est interessant - (score de +23 sur 25 votes)
Loading ... Loading ...

Poster un commentaire


Votre email ne seras jamais communiqué champs requis désigné par une *

*
*


− 3 = quatre

Formation logiciel R