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 extraire certaines lignes d’un jeu de donnée? : subset

4
dans manipulation de données, Transformation de données
Il peut être utile de ne sélectionner que quelques individus dans un jeu de données. La fonction subset permet de faire de l’extraction de données de manière très propre !


 
data(iris)
subset(iris,Petal.Length<1.5)# on ne sélectionne que les individus avec Petal.Length<1.5 
 



Proposé par Vincent.

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

4 Comments

  1. Guillaume
    Posté le 23 janvier 2012 a 13 h 53 min | Permalink

    je ne pense pas que subset puisse prendre plusieur colonne en compte essaye

     
     
    dataset[which(dataset$family=="A"& dataset$sex=="F" ),]
     

    Où dataset est ton jeu de donnée
    pour info which retourne les ligne donc la réponse à la question logique family== »A »&sex== »F » est vrai, tu peux ainsi avec which ajouter autant de condition que tu veux

  2. helene
    Posté le 23 janvier 2012 a 13 h 54 min | Permalink

    bonjour,

    je cherche à selectionner des individus d’un jeu de données mais correspondant à plusieurs critères, par exemple:
    les individus femelles, de la lignée A. comment coder cela sur R:
    subset(family,A;sex,F) ne fonctionne pas
    est-ce toujours la fonction subset qu’il faut utiliser et dans ce cas comment?

    merci d’avance,
    hélène

  3. Stan
    Posté le 8 octobre 2014 a 23 h 24 min | Permalink

    Les balises ont pas l’aire de marcher…

  4. Stan
    Posté le 8 octobre 2014 a 23 h 24 min | Permalink

     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 (pas besoin de passer par 'which')
    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

Poster un commentaire


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

*
*


huit − 3 =

Formation logiciel R