Transformation de table

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Vincent Boulanger
Messages : 76
Enregistré le : 25 Avr 2006, 11:59

Transformation de table

Messagepar Vincent Boulanger » 25 Jan 2007, 14:21

Bonjour,
je dispose de données sous format base de données oragnisées en lignes comme suit :
espèce relevé coefficient

je souhaite transormer cela en un tableau avec les relevés en lignes et les espèces en colonnes avec les coefficients aux intersections qui vont bien
(ce qu'excel ou access appellent "tableaux croisés dynamiques", ça se fait bien sauf quand on a plus de 256 colonnes nécessaires ! )

Existe-t-il une fonction dans R qui me pemettrait de transformer mes données de cette manière?

Merci

VB
Vincent Boulanger
Ingénieur Forestier
Doctorant Cemagref/INRA/ONCFS

E.V. Dennst

Re: Transformation de table

Messagepar E.V. Dennst » 26 Jan 2007, 08:28

Vincent Boulanger a écrit :Bonjour,
je dispose de données sous format base de données oragnisées en lignes comme suit :
espèce relevé coefficient
je souhaite transormer cela en un tableau avec les relevés en lignes et les espèces en colonnes avec les coefficients aux intersections qui vont bien
(ce qu'excel ou access appellent "tableaux croisés dynamiques", ça se fait bien sauf quand on a plus de 256 colonnes nécessaires ! )
Existe-t-il une fonction dans R qui me pemettrait de transformer mes données de cette manière?
Merci
VB

Fonction toute faite, je ne sais pas.
Sinon,
m = matrix(...)
for toutes les lignes
m(espece, relevé) = coefficient (ou une fonction idoine si plusieurs)

ou alors je n'ai pas compris la question.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 26 Jan 2007, 08:51

je dispose de données sous format base de données oragnisées en lignes comme suit :
espèce relevé coefficient

je souhaite transormer cela en un tableau avec les relevés en lignes et les espèces en colonnes avec les coefficients aux intersections qui vont bien


Voir reshape:

Code : Tout sélectionner

> Long <- data.frame(relevé = rep(1:3, 5), espèce = rep(letters[1:5], each = 3), coeff = runif(30))
> Long
   relevé espèce      coeff
1       1      a 0.63479605
2       2      a 0.35946643
3       3      a 0.39279525
4       1      b 0.86682934
5       2      b 0.53243119
6       3      b 0.03823673
7       1      c 0.28518688
8       2      c 0.54942722
9       3      c 0.41599105
10      1      d 0.74912339
11      2      d 0.91790868
12      3      d 0.17894793
13      1      e 0.77659612
14      2      e 0.02723718
15      3      e 0.25591282
16      1      a 0.80916185
17      2      a 0.98397792
18      3      a 0.96022664
19      1      b 0.39117588
20      2      b 0.03040327
21      3      b 0.26481389
22      1      c 0.05594855
23      2      c 0.42550794
24      3      c 0.81795086
25      1      d 0.86490528
26      2      d 0.67287884
27      3      d 0.32023010
28      1      e 0.08645388
29      2      e 0.33778458
30      3      e 0.18015819
> reshape(Long, direction = "wide", idvar = "relevé", timevar = "espèce")
  relevé   coeff.a    coeff.b   coeff.c   coeff.d    coeff.e
1      1 0.6347960 0.86682934 0.2851869 0.7491234 0.77659612
2      2 0.3594664 0.53243119 0.5494272 0.9179087 0.02723718
3      3 0.3927952 0.03823673 0.4159910 0.1789479 0.25591282


Renaud

Vincent Boulanger
Messages : 76
Enregistré le : 25 Avr 2006, 11:59

Messagepar Vincent Boulanger » 26 Jan 2007, 09:01

Merci beaucoup,
cela va me permettre de vaincre les limites des tableurs...
VB
Vincent Boulanger

Ingénieur Forestier

Doctorant Cemagref/INRA/ONCFS


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité