Extraire un sous tableau d'un tableau ordonné

Questions sur les objets de R et la manipulation des données

Modérateur : Groupe des modérateurs

Caroline Rondel
Messages : 4
Enregistré le : 08 Déc 2005, 09:53

Extraire un sous tableau d'un tableau ordonné

Messagepar Caroline Rondel » 03 Aoû 2006, 08:42

Bonjour à tous,

En fait j'ai pas mal de questions mais toute tourne autour de mon problème principal:

Existe t-il une fonction qui permet d'extraire un tableau d'un autre selon des critère logique?

Je veux ,avec un tableau dont la première colonne ordonnée, pouvoir extraire toutes lignes où les variables de la première colonne sont identiques. Puis mettre cet extrait dans de nouvelles variables.

Je suis débutante sous R et en "programmation" :? . J'ai essayer de créer une suite d'ordre pour faire ça mais ça ne marche pas. Il y'a plusieurs problèmes.

Pour tester le programme j'avais utilisé l'objet z et la liste d'ordre qui suit:

Code : Tout sélectionner

z=cbind(rep(c("a","b","c","d"),rep(3,4)),c(1:3,3,3:2,2:3,1:3,2))

d=1
b=1
i=0
gp=as.list(c(1:10))
c= length(z[,1])
while (b <c)
{while (z[b,1]==z[b+1,1])
 {a=d
b=b+1}
 Var= z[a:b,]
 b=b+1
 d=b+1
  i=i+1
 gp[[i]]= Var}



La syntaxe d'erreur retourné est :
Erreur : indice hors limites

Je pense que le 1er problème vient de l'instruction while (z[b,1]==z[b+1,1]
Quand la taille de b=c, il ne peux plus effectuer l'instruction qui est hors limite.
Mon 2ème problème est qu'il manque une ligne de valeur à chaque tableau extrait.
Je pense que ces erreurs viennent de mon incrémentation de b et d mais je ne sait pas comment m'en sortir.

Auriez vous quelques conseils concernant la "programmation"?
Sauriez vous si une tel fonction n'existe pas déjà?

En vous remerciant par avance!

Karine Poitrineau
Messages : 18
Enregistré le : 30 Mai 2006, 19:37

Messagepar Karine Poitrineau » 03 Aoû 2006, 15:53

Bonjour,
J'espère que j'ai bien compris ton problème.

Si tu as peu de cas différents dans ta première colonne, tu peux faire ça rapidement "à la main" avec ce genre de fonction:

> study[study$gender == 'Fe', ] # use $ to access gender via a list
weight height gender
Mary 150 65 Fe
Alice 135 61 Fe
Judy 140 65 Fe

(dans cet exemple on extrait les parties de la data frame où le genre est "Fe")
Exemple rapidement récupéré ici:
http://www.math.csi.cuny.edu/Statistics ... html#toc37

Sinon tu dois pouvoir utiliser la fonction split en précisant que tu veux "spliter" en fonction de valeurs de ta première colonne.

K.

Vincent Andres
Messages : 13
Enregistré le : 17 Juil 2006, 09:27

Re: Extraire un sous tableau d'un tableau ordonné

Messagepar Vincent Andres » 04 Aoû 2006, 08:39

Caroline Rondel a écrit :Bonjour à tous,
Existe t-il une fonction qui permet d'extraire un tableau d'un autre selon des critère logique?
Auriez vous quelques conseils concernant la "programmation"?
Sauriez vous si une tel fonction n'existe pas déjà?
En vous remerciant par avance!

voir déjà :
?"["
?which
?subset

en R on peut mettre des conditions logiques dans les brackets, eg a[a==3]. On peut déjà faire plein de choses comme ça.
which est puissant aussi.

eça


Retourner vers « Archives : Manipulation de données avec R »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité