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


programmer avec R

Comment rédiger avec RMarkdown ? Quelques commandes utiles

0
dans programmer avec R, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Vous souhaitez rédiger des documents qui contiennent du code, des résultats de console ou des graphiques ? Alors Mardown est fait pour vous !

Langage HTML simplifié, Markdown est idéal pour communiquer, à toutes les étapes de votre analyse de données. Carnets de notes pour vous, outils de transmission à vos collègues, ou encore bilans d’analyse à destination d’un grand public, les documents Markdown sont un véritable atouts, à mettre dans la besace de tous les utilisateurs de R. Et pour cause, sa simplicité va vous bluffer !

Pour créer un nouveau document en RMarkdown, rendez-vous sur l’onglet « File / New File » de RStudio. Puis, sélectionnez « R Markdown ». Dans cette nouvelle fenêtre, vous pouvez rédiger votre présentation, en suivant les conventions de balisage suivantes :

 # Titre de niveau 1
## Titre de niveau 2
### Titre de niveau 3
#### Titre de niveau 4 
 
_Un texte en italique_
__Un texte en gras__
 
[Un lien vers](www.ce-site.com)
![Une image située](à/cet/emplacement.png) 
 
> Une citation
 
* Une liste
* avec plusieurs items
 + et des sous-items
 
```{r}
Une portion de code R 
```

Et pour en savoir plus sur les commandes, rendez-vous sur la Cheatsheet officielle !

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

Sélectionner des sous-ensembles de jeux de données avec la fonction subset

2
dans algorithmique, manipulation de données, programmer avec R, Transformation de données
- ça ne sert à rien -- c\'est interessant - (score de +3 sur 3 votes)
Loading ... Loading ...
Si l’on veut sélectionner un sous-ensemble d’un jeu de données à partir d’une condition simple étendue, d’une condition multiple exclusive, d’une condition multiple inclusive, d’une condition multiple exclusive étendue, ou d’une condition multiple inclusive étendue, il faut utiliser les opérateurs logiques OU et/ou ET.
Dans R, le ET s’écrit « & », et le OU s’écrit « | ».

Une condition simple porte sur une seule colonne.
Une condition multiple porte sur plusieurs colonnes à la fois (comme pour les régressions).
Une condition étendue porte sur l’union de plusieurs modalités/critères au sein d’une même colonne : elle utilise l’opérateur logique OU.
Une condition exclusive est une condition multiple qui porte sur l’intersection de sous-ensembles : elle utiilise l’opérateur logique ET.
Une condition inclusive est une condition multiple qui porte sur l’union de sous-ensembles : elle utilise l’opérateur logique OU.
Une condition simple ne peut, par nature, ni être exclusive, ni être inclusive.

Pour une sélection simple étendue, on utilisera l’opérateur logique OU.
Pour une sélection multiple exclusive, on utilisera l’opérateur logique ET.
Pour une sélection multiple inclusive, on utilisera l’opérateur logique OU.
Pour une sélection multiple exclusive étendue, on utilisera les opérateurs logiques OU et ET.
Pour une sélection multiple inclusive étendue, on utilisera l’opérateur logique OU.


 
 
data(iris)
head(Iris)
summary(iris)
 
### Exemple de sélection simple étendue sur une variable qualitative ###
# Il existe dans ce jeu de données 3 espèces : setosa, versicolor et virginica.
# On veut sélectionner le sous-ensemble concernant les espèces setosa OU versicolor.
iris2 = subset(iris, Species == "setosa" | Species == "versicolor") # on peut soit passer par la fonction 'subset'
iris2 = iris[iris$Species == "setosa" | iris$Species == "versicolor",] # ou soit passer par les conditions entre crochets
iris2
 
# En revanche, on ne peut pas utiliser cette syntaxe :
iris2 = subset(iris, Species == c("setosa","versicolor"))
# Ni celle-ci :
iris2 = iris[iris$Species == c("setosa","versicolor")]
# Car je ne sais pas pourquoi, mais ces syntaxes ne sélectionnent qu'une partie du sous-ensemble désiré. Cette partie a un nombre de lignes égal au nombre de lignes qui auraient été sélectionnées par une condition portant sur une seule modalité.
dim(iris2) # On a 50 lignes, alors qu'on devrait en avoir 100 !
 
 
### Exemple de sélection simple étendue sur une variable quantitative ###
# On veut sélectionner les fleurs dont la longueur du pétale est inférieure à 1,5 cm OU supérieure à 5 cm.
iris3 = subset(iris, Petal.Length <= 1.5 | Petal.Length >= 5)
iris3 = iris[iris$Petal.Length <= 1.5 | iris$Petal.Length >= 5,]
iris3
 
 
### Exemple de sélection multiple exclusive ###
# On veut sélectionner les fleurs de l'espèce setosa ET dont la longueur du pétale est inférieure à 1,5 cm.
iris4 = subset(iris, Species == "setosa" & Petal.Length <= 1.5)
iris4 = iris[iris$Species == "setosa" & iris$Petal.Length <= 1.5,]
iris4
 
 
### Exemple de sélection multiple inclusive ###
# On veut sélectionner les fleurs de l'espèce setosa OU celles dont la longueur du pétale est supérieure à 5 cm.
iris5 = subset(iris, Species == "setosa" | Petal.Length >= 5)
iris5 = iris[iris$Species == "setosa" | iris$Petal.Length >= 5,]
iris5
 
 
### Exemple de sélection multiple exclusive étendue ###
# On veut sélectionner les fleurs de l'espèce versicolor OU virginica ET dont la longueur du pétale est supérieure à 5 cm.
# Attentions, il faut alors utiliser des parenthèses !
iris6 = subset(iris, (Species == "versicolor" | Species == "virginica") & Petal.Length >= 5)
iris6 = iris[(iris$Species == "versicolor" | iris$Species == "virginica") & iris$Petal.Length >= 5,]
iris6
 
 
### Exemple de sélection multiple inclusive étendue ###
# On veut sélectionner les fleurs de l'espèce versicolor OU virginica OU celles dont la longueur du pétale est inférieure à 1,5 cm.
# Pas forcément besoin de parenthèses ici.
iris7 = subset(iris, Species == "versicolor" | Species == "virginica" | Petal.Length <= 1.5)
iris7 = iris[iris$Species == "versicolor" | iris$Species == "virginica" | iris$Petal.Length <= 1.5,]
iris7
 


Proposé par Stan.

Déjà 2 commentaires. Cliquez ici pour réagir.

Comment utiliser la parallélisation des calculs avec R ?: foreach

2
dans algorithmique, fonctions utiles, programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +5 sur 5 votes)
Loading ... Loading ...
la parallélisation des calculs, permet d’exploiter au maximum les capacité calculatoire de votre ordinateur en utilisant tous les core de votre machine ( dual core , quad core …)
Cette facpon de proceder est rentable si le calcul que vous voulez faire prend plus de temps que le fait de mettre en place la parallélisation

 
library(foreach)
library(doSNOW)
getDoParWorkers()
registerDoSNOW(makeCluster(4, type = "SOCK"))# 2 , 4 ou plus en fonction de votre machine
getDoParWorkers()
N <- 10^4
system.time(foreach(i = 1:N,.combine = "cbind") %do% {sum(rnorm(N))})
system.time(foreach(i = 1:N,.combine = "cbind") %dopar% {sum(rnorm(N))})
 
 

Proposé par Vincent.

Déjà 2 commentaires. Cliquez ici pour réagir.

Comment afficher l’historique des commandes passées dans R ? history

0
dans fonctions utiles, programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +3 sur 3 votes)
Loading ... Loading ...
Ca peut etre utile.

<code>history(Inf)</code>
Pas encore de commentaire, cliquez ici pour réagir.

Comment passer des paramètres par défaut à une fonction dans R?

0
dans base indispensable, programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +7 sur 7 votes)
Loading ... Loading ...
Pour éviter de se tromper dans l’ordre où les paramètres sont passés à une fonction, il vaut mieux les nommer. Ainsi l’ordre n’importera pas. Cela permet en plus de passer une valeur par défaut.


 
 
essai<-function(par1=3, par2=20) {
print(par1)
print(par2)
}
 
essai()
 
#[1] 3
#[1] 20
 
essai(1,2)
 
#[1] 1
#[1] 2
 
essai(par1=1)
 
#[1] 1
#[1] 20
 
essai(par2=10)
 
#[1] 3
#[1] 10
 
essai(par2=10, par1=4)
 
#[1] 4
#[1] 10
 

Proposé par Marc Girondot.

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

Comment gérer les erreurs dans un script R ? try

0
dans fonctions utiles, programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +3 sur 3 votes)
Loading ... Loading ...
Si vous voulez vous assurer qu’une instruction qui n’aboutit pas ne bloque pas votre script ou encore si vous avez besoin de gérer les exceptions, vous pouvez utiliser la fonction try.


 
rm(list=ls(all=TRUE)) # pour partir d'une mémoire vierge
print(a)# va vous renvoyer un message d'erreur... et aura bloqué votre script si vous l'aviez lancé via source() par exemple
try(print(a))# vous affiche l'erreur mais ne gêne pas la suite du processus
try(print(a),silent=T)# ne vous affiche même pas l'erreur
 


Ici l’exemple donné n’a que peu d’utilité, mais ce principe de gestion des erreurs (en particulier avec tryCatch) peut vous rendre beaucoup de services dans une boucle ou autre.


Proposé par vincent.

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

Comment concaténer des chaînes de caractères dans R ? : paste

1
dans base indispensable, programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +12 sur 14 votes)
Loading ... Loading ...
La fonction paste permet de « coller » des chaînes de caractères, cela peut être utile pour plein de chose : définir le nom d’un fichier de sortie, écrire une formule pour un modele…
 
 
a<-"coucou"
b<-"comment vas-tu?"
 
paste(a,b)
# coucou comment vas-tu?
 paste(a,b,sep="+") 
#  coucou+comment vas-tu? 
# le paramètre sep permet de définir le caractère utilisé pour concaténer les chaînes de caractères
 
 
 

Proposé par vincent.

1 commentaire. Cliquez ici pour réagir.

Comment étendre la mémoire allouée à R

1
dans programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +5 sur 5 votes)
Loading ... Loading ...
De temps en temps, les données que l’on utilise peuvent être de grandes tailles et R ne peut pas les prendre en charge car sa mémoire est trop remplie.
Dans ce cas 2 solutions s’offrent à vous : soit vous supprimez des éléments (dont vous pouvez avoir la liste avec ls() ) en utilisant rm(nom_ élément_à_supprimer), soit vous augmentez la capacité de la mémoire allouée à R en utilisant la fonction suivante :

memory.limit(size=4000) 
# si par mégarde vous mettez une valeur trop grande, R vous retournera un message d'erreur plein d'humour

Proposé par Guillaume.

1 commentaire. Cliquez ici pour réagir.

Comment charger un script R ? source

2
dans base indispensable, programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +5 sur 7 votes)
Loading ... Loading ...
Lorsque vous avez beaucoup de fonctions dans un fichier, vous pouvez les charger en faisant un copier-coller dans la console ou en faisant ctrl+R après avoir sélectionné vos fonctions (pour windows). Mais ce n’est pas très pratique et surtout c’est souvent assez long.

Je vous propose d’utiliser la fonction source. Cette fonction va interpréter ce qui se trouve dans un fichier.
Concrètement, vous mettez vos fonctions et autres scripts a interpréter dans un fichier « function.R » ‘ (qui n’est rien d’autre qu’un fichier texte), vous l’enregistrez sur votre disque dur (dans votre espace de travail c’est le plus simple… l’important est de savoir ou il est). Puis vous lancez:

source("function.R")
ls()# va vous donner ce que R a maintenant en mémoire
 



En pratique on peut sourcer tout et n’importe quoi : charger des fonctions, lancer des calculs… Il faut par contre que votre fichier soit irréprochable : que tous les commentaires soient bien précédés de # par exemple.

Proposé par vincent.

Déjà 2 commentaires. Cliquez ici pour réagir.

Comment effacer la mémoire de R ? rm

2
dans base indispensable, programmer avec R
- ça ne sert à rien -- c\'est interessant - (score de +12 sur 14 votes)
Loading ... Loading ...
R va accumuler en mémoire un certain nombre d’objets (listes, vecteurs, fonctions…)
 Si vous voulez tous les effacer pour repartir d’une mémoire vierge (au lancement d’un script par exemple), vous pouvez utiliser cette commande :
 
rm(list=ls())

 
 En pratique, la fonction rm vous permet d’effacer l’objet de votre choix
 
 
 
a<-5
a
#[1] 5
rm(a)
a
#Error: object 'a' not found

Proposé par vincent.

Déjà 2 commentaires. Cliquez ici pour réagir.
Formation logiciel R