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
  • Transformation de données


Les scripts R de Benjamin

Comment comparer deux séries de valeurs avec R ?

0
dans algorithmique, base indispensable
- ça ne sert à rien -- c\'est interessant - (score de +19 sur 21 votes)
Loading ... Loading ...
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.

Pas encore de commentaire, cliquez ici pour réagir.

Comment rechercher des aides/fonctions/packages dans R ?

0
dans base indispensable
- ça ne sert à rien -- c\'est interessant - (score de +3 sur 3 votes)
Loading ... Loading ...
Devant les importantes possibilités de R, il est possible et utile de lancer certaines recherches en ligne de commande pour trouver des fonctions ou des paquets associés.
(NB : une connexion internet est requise)

Tout d’abord, pour obtenir l’aide (en anglais) d’une fonction, il y a 2 possibilités :
 
help(LaFonction) #LaFonction = le nom de la fonction
#ou
?LaFonction
 
#Exemple avec la fonction matrix() qui permet de créer une matrice
?matrix
 



Si R vous renvoie un message d’erreur disant que « LaFonction » n’existe pas, c’est que :

- soit elle n’existe effectivement pas ! Dans ce cas, vous pouvez essayer de rechercher une fonction qui permet ce que vous voulez via la ligne de commande :
 
RSiteSearch("keywords", restrict="functions") #ne pas oublier les guillemets
 

Cette fonction va rechercher toutes les fonctions R selon les mots clés donnés (attention il est conseillé de faire la recherche en anglais afin d’avoir plus de résultats).
Essayer de lancer par example :
 
 RSiteSearch("linear model", restrict="functions") 
 

Vous obtiendrez toutes les fonctions en rapport avec les mots clés : linear+model


- soit LaFonction existe mais vous ne savez plus dans quel paquet elle se trouve. Dans ce cas, lancez la commande:
 
 help.search("LaFonction") #ne pas oublier les guillemets
 

Cette fonction donne une liste de fonctions en rapport avec le nom LaFonction et les paquets associés que vous pouvez installer et/ou charger sous la forme :
paquet1::fonction1  description de la fonction1
paquet1::fonction2  description de la fonction2
…..
Essayez par exemple :
 
 help.search("matrix")
 


Proposé par Benjamin.

Pas encore de commentaire, cliquez ici pour réagir.

Comment transformer un vecteur de classe « factor » vers la classe « numeric » dans R ?

0
dans Transformation de données
- ça ne sert à rien -- c\'est interessant - (score de +8 sur 8 votes)
Loading ... Loading ...
MonVecteur=as.numeric(as.character(MonVecteur))


Cette commande permet de changer la classe de MonVector, reconnue comme « factor » par R mais codé à l’aide de chiffre, en classe « numeric ». Le passage par la classe « character » évite les changements des dits chiffres de MonVecteur souvent observés lors de l’utilisation de la fonction as.numeric().

exemple:

 
vec<-as.factor(c("3","7","11","13")) 
vec
as.numeric(vec) #ne donne pas ce que l'on veut
as.numeric(as.character(vec)) # permet d'obtenir le résultat voulu.
 


Proposé par Benjamin.

Pas encore de commentaire, cliquez ici pour réagir.
Formation logiciel R