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


manipulation de données

Comment sélectionner des colonnes qui commencent par une suite de caractères ? select( starts_with())

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Vous avez besoin de sélectionner des colonnes en fonction de leur nom ? Faites appel à select, fonction du package dplyr. Vous trouvez laborieux de taper à la main l’ensemble des noms des colonnes que vous souhaitez ? Il y a un paramètre pour ça !

Si vos noms de colonnes suivent un pattern défini, vous pouvez les sélectionner avec starts_with().

library(dplyr)
data("who")
select(who, starts_with("newrel"))

À noter que vous pouvez également utiliser ends_with(), matches() ou encore contains().

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

Comment sélectionner des lignes par leur index ? slice()

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Pour sélectionner une série de lignes d’un tableau par leur index, faites appel à la fonction slice() du package dplyr !

Comme tous ses cousins du tidyverse, slice() prend en premier argument le nom du tableau à transformer. Ensuite, vous pouvez sélectionner vos lignes par leur index, avec un vecteur numérique.

library(dplyr)
data("presidential")
slice(presidential, 1:25)
Pas encore de commentaire, cliquez ici pour réagir.

Comment séparer une colonne ? separate()

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Votre colonne contient deux variables (ou plus), et vous avez besoin de la séparer ? Pour transformer xx_yy en deux colonnes qui contiendront xx et yy, faites appel à la fonction separate() du package tidyr !

separate prend quatre arguments principaux : le tableau, le nom de la colonne à séparer, les noms des colonnes cibles, et le séparateur.

library(tidyr)
data("presidential")
separate(presidential, start, c("y","m", "d"), sep = "-")
Pas encore de commentaire, cliquez ici pour réagir.

Tibble ou data.frame ?

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Commençons par un point important : un tibble est un data.frame… mais un data.frame amélioré !

Élément central du tidyverse, cette forme diffère des data.frame natifs dans deux comportements :

  • l’affichage : les tibbles s’adaptent à l’écran, et chaque colonne affiche son type.
  • la sélection : elle est plus stricte dans un tibble — elle ne se fait jamais en partial match, et un message d’erreur s’affiche lorsque vous sélectionner un élément qui n’existe pas.
Pour créer un tibble, deux solutions : la conversion depuis un data.frame, ou la création à la main.
library(tibble)
data("swiss")
as_tibble(swiss)
 
tibble(x = 1:4, 
       y = 5:8)
Pas encore de commentaire, cliquez ici pour réagir.

Comment résumer un jeu de données ? summarise()

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...
Vous avez besoin d’un résumé rapide sur une ou plusieurs variables de votre tableau ? Direction la fonction summarise (ou summarize, selon vos affinités).
data("who")
who %>%
  summarise(minimum = min(year))
Notez qu’il est possible de combiner plusieurs résumés dans cette fonction.
who %>%
  summarise(minimum = min(year), 
            maximum = max(year))
Pas encore de commentaire, cliquez ici pour réagir.

Comment ordonner un jeu de données ? arrange()

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...
Pour ordonner un tableau en fonction d’une colonne, faites appel à arrange(), issu de dplyr. Cette fonction prend en premier argument l’objet contenant le tableau, puis la colonne qui servira de base pour votre tri.
data("midwest") 
midwest %>%
  arrange(poptotal)
Par défaut, la colonne est triée en ordre croissant. Un comportement que vous pouvez modifier avec desc().
midwest %>%
  arrange(desc(poptotal))
Pas encore de commentaire, cliquez ici pour réagir.

Comment sélectionner des colonnes dans un data.frame ? select()

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...
Votre jeu de données est trop grand ? Vous avez trop de colonnes ? Vous pouvez en sélectionner très simplement avec la fonction select() de dplyr.

Comme toutes les fonctions du tidyverse, le premier argument est l’objet contenant le jeu de données. Puis, il suffit d’entrer le nom des colonnes à conserver.

library(dplyr)
data("smiths")
select(smiths, subject, age)
Pas encore de commentaire, cliquez ici pour réagir.

Comment filtrer un jeu de données avec dplyr ? : filter()

0
dans manipulation de données, tidyverse
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

Avec ce package du tidyverse, vous pouvez filtrer votre jeu de données pour ne retenir que les valeurs qui vous intéressent, grâce à la fonction filter().

Cette fonction prend en paramètres votre objet contenant un tableau de données, puis une ou plusieurs variable(s) avec leurs filtres. Vous pouvez utiliser tous les opérateurs classiques (==, !=, >, <, etc.)

data(women)
women %>%
 filter(height == 59)
women %>%
 filter(height > 59 & weight < 139)

Vous pouvez également « piper » vos filtres. Utile pour une meilleure lisibilité, si vous voulez combiner beaucoup de conditions (mais vous aurez plus de ligne  :

women %>%
 filter(height > 59) %>%
 filter(weight < 139)

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

Comment faire une Analyse en Composantes Principale (ACP) sur R ? PCA, plot.PCA

0
dans fonctions utiles, manipulation de données
- ça ne sert à rien -- c\'est interessant - (score de +2 sur 6 votes)
Loading ... Loading ...

La fonction PCA() permet d’effectuer une ACP.

 
library(FactoMineR)
res_pca <- PCA (iris, quali.sup=5)
#On réalise une ACP sur les 4 variables quantitatives du jeu de données iris
#La 5<sup>ème</sup> variable qui correspond au nom de la variété est qualitative
#Nous plaçons cette variable en supplémentaire,
#cette variable ne participera donc pas à la construction de l’ACP,
#mais elle apportera de l’information supplémentaire
 
plot.PCA(res_pca,col.quali="blue", label="quali")
#La fonction plot.PCA contient de nombreux paramètres modulables
#ici nous choisissons la couleur de la variable qualitative
#et de cacher l’étiquette des individus grâce au paramètre « label »
 
 

Pour pouvoir décrire les résultats de cette analyse nous avons besoin d’étudier les coefficients de corrélation. On obtient ces coefficients grâce à la fonction dimdesc().

 
dimdesc(res_pca)
 
 

Proposé par Helene F.

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

Comment comparer deux variances grâce au test de Fisher-Snedecor ? var.test

0
dans fonctions utiles, manipulation de données
- ça ne sert à rien -- c\'est interessant - (score de +2 sur 2 votes)
Loading ... Loading ...

Le test de Fisher-Snedecor permet de savoir si les variances de deux populations (δ1² et δ2²) sont égales ou non. L’hypothèse H0 testée correspond à δ1²= δ2².

Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire de chaque individu et que les ces deux échantillons suivent une loi Normale. On utilise pour tester cette hypothèse la fonction var.test().

 
data(iris)
A<-subset(iris,Species=="setosa")[,2]
#On isole la 2ème colonne : la largeur des sépales
 
 

On commence par tester la normalité de cette variable grâce au test de Shapiro :

 
shapiro.test(A)
 
        Shapiro-Wilk normality test
 
data:  A
W = 0.9717, p-value = 0.2715
 
 

La p-value est supérieur à 0.05 on ne rejette donc pas l’hypothèse de normalité.

 
#On isole les 100 premières lignes qui correspondent aux données des espèces Setosa et Versicolor.
var.test(Sepal.Length~Species, data=iris[1:100,])
 
        F test to compare two variances
 
data:  Sepal.Length by Species
F = 0.4663, num df = 49, denom df = 49, p-value = 0.008657
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.2646385 0.8217841
sample estimates:
ratio of variances
         0.4663429
 
 

On remarque que la probabilité critique (p-value) vaut 0.008, ce qui est bien inférieur à 0.05. Nous rejetons donc l’hypothèse H0. Cela signifie que la variance de la longueur des sépales et significativement différente entre les deux espèces d’Iris étudiées. L’intervalle de confiance avec un seuil de 95% est [0.26 ; 0.82] et le quotient des variances de 0.46.

Proposé par Helene F.

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