Gestion des données (importation)

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

Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Gestion des données (importation)

Messagepar Remy Duchemin » 10 Aoû 2013, 18:32

Bonsoir,

Je souhaiterais avoir de l'aide dans la gestion/importation de données.

Voici mes données :

123.1 1.92 12.4
124.3 2.15 9.9
89.3 1.67 2.4
141.3 1.68 13.8
112.8 1.75 3.5
108.1 1.55 1.8
143.9 1.54 17.8
124.2 2.10 9.8
110.1 2.44 8.3
111.7 2.47 9.8
123.8 1.86 12.6


a. Pourriez-vous me dire comment les importer en faisant :
donnees<-read.table(texte="....) ?

b. Comment intégrer les noms des variables X1, X2 et X3 ?

c. Comment transformer le data.frame en data.matrix ?

J'espère que vous pourrez m'aider à traiter ces questions.

Merci par avance

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Messagepar Eric Wajnberg » 11 Aoû 2013, 09:32

Avant toute chose, je pense que vous devriez lire deux-trois trucs pour apprendre les bases de R. Il y en a plein sur le web, par exemple. L'importation des données est le point de départ incontournable.

Pour importer des données, il y a plusieurs fonctions pour ca, notamment effectivement la fonction read.table(). Elle peut prendre pas mal d'arguments, le principal étant le nom du fichier dans lequel sont vos données.

Par exemple

Code : Tout sélectionner

donnees<-read.table("mon_fichier")

suffirait déjà pas mal.

Pour les nom des variables, soit elles sont dans le fichier, à la première ligne, et dans ce cas

Code : Tout sélectionner

donnees<-read.table("mon_fichier",header=TRUE)

permet de les reccupérer.

Sinon, des noms sont attribués automatiquement, V1, V2 et V3. Vous pouvez toujours les changer après

Code : Tout sélectionner

donnees<-read.table("mon_fichier")
names(donnees)<-c("X1","X2,"X3")


HTH, Eric.

Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Messagepar Remy Duchemin » 11 Aoû 2013, 09:58

Bonjour,
Et merci pour votre réponse.

Je n'ai pas de soucis pour les importer depuis un fichier txt ou csv.
Je souhaitais les intégrer de la manière suivante :
donnees = read.table(text = " .......", sep = " ", header = TRUE)
Mais cela marche, j'avais un soucis avec : sep = " ".

Par contre, j'ai un soucis pour transformer mes données en matrice.
En effet, je veux réaliser l'opération :
t(donnees)*donnees de format (3 fois 11)par (11 fois 3)
je dois obtenir une matrice carré 3 fois 3 mais en faisant :
t(donnees)*donnees
je n'obtiens pas le produit matriciel.
Pouvez-vous me dire où est mon erreur ?

Code : Tout sélectionner

donnees = read.table(text = "
123.1 1.92 12.4
124.3 2.15 9.9
89.3 1.67 2.4
141.3 1.68 13.8
112.8 1.75 3.5
108.1 1.55 1.8
143.9 1.54 17.8
124.2 2.10 9.8
110.1 2.44 8.3
111.7 2.47 9.8
123.8 1.86 12.6
", sep = " ",dec=".", header = F)
t(donnees)*donnees

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Messagepar Eric Wajnberg » 11 Aoû 2013, 10:07

Je ne pense pas que l'argument "sep" pose le problème. C'est plutot l'argument "text" qui en pose. Cet argument n'existe pas (à ma connaissance, ni dans la doc) dans la fonction read.table.

Par ailleurs, la manipulation de matrices (et notamment leur produit) demande des syntaxes spécifiques. Ici aussi, l'apprentissage des bases de R semble nécessaire. Regadez par exemple, ici: http://www.duclert.org/Aide-memoire-R/L ... trices.php

HTH, Eric.

Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Messagepar Remy Duchemin » 11 Aoû 2013, 13:18

J'ai bien lu lien et il n'y a pas la réponse.

je transforme la data.frame donnees en data.matrix
et ça ne marche pas.
Pouvez-vous m'indiquer une indication à l'aide de mon exemple?

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Messagepar Eric Wajnberg » 11 Aoû 2013, 14:54

Remy Duchemin a écrit :J'ai bien lu lien et il n'y a pas la réponse.

je transforme la data.frame donnees en data.matrix
et ça ne marche pas.
Pouvez-vous m'indiquer une indication à l'aide de mon exemple?

exemple pour multiplier deux matrices:

Code : Tout sélectionner

#definition de deux matrices
a = matrix(1:16, 4, 4, TRUE)
b = matrix(1:16, 4, 4, TRUE)
# le produit à présent
a %*% b

Cette syntaxe est pourtant bien expliquée dans le lien que je vous ai donné..

HTH, Eric.

Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Messagepar Remy Duchemin » 11 Aoû 2013, 15:42

Merci mais c'est mon jeu de données qui me pose problème.
J'arrive à générer des vecteurs et faire des opérations avec.
J'ai du mal poser ma question.
Je souhaite transformer ma table, qui s'intitule donnees ci-dessous en matrice.
C'est-à-dire, convertir le data.frame donnees en data.matrix.
J'ai déjà essayé de faire
data.matrix(donnees)
Mais cela ne m'aide pas trop.
Comment faire avec mon jeu de données, "donnees" ?

Code : Tout sélectionner

donnees = read.table(text = "
123.1 1.92 12.4
124.3 2.15 9.9
89.3 1.67 2.4
141.3 1.68 13.8
112.8 1.75 3.5
108.1 1.55 1.8
143.9 1.54 17.8
124.2 2.10 9.8
110.1 2.44 8.3
111.7 2.47 9.8
123.8 1.86 12.6
", sep = " ",dec=".", header = F)


Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Messagepar Remy Duchemin » 11 Aoû 2013, 16:02

Code : Tout sélectionner

> donnees = read.table(text = "
+ 123.1 1.92 12.4
+ 124.3 2.15 9.9
+ 89.3 1.67 2.4
+ 141.3 1.68 13.8
+ 112.8 1.75 3.5
+ 108.1 1.55 1.8
+ 143.9 1.54 17.8
+ 124.2 2.10 9.8
+ 110.1 2.44 8.3
+ 111.7 2.47 9.8
+ 123.8 1.86 12.6
+ ", sep = " ",dec=".", header = F)
> t(donnees)%*%donnees
Erreur dans t(donnees) %*% donnees :
  nécessite des arguments numériques/complexes matrice/vecteur

Le produit d'une matrice 3 fois 11 par une matrice 11 fois 3 est possible. Pourquoi ai-je ce message d'erreur?

Eric Wajnberg
Messages : 778
Enregistré le : 11 Aoû 2008, 15:37
Contact :

Messagepar Eric Wajnberg » 11 Aoû 2013, 16:35

1) Au risque de me répéter, l'argument "text" de read.table() ne me semble pas valide. Tout au moins je ne le connais pas. read.table() est une fonction qui lit des données au fichier selon moi.

2) La multiplication de matrices multiplie des matrices (tautologie, désolé). Votre table "donnees" n'est pas une matrice. Le message d'erreur que vous récupérez est explicite sur ce point.

3) Allez voir du coté de la fonction as.matrix(), elle devrait répondre à votre question. Elle transforme un objet en un objet de type matrice.

HTH, Eric.

Remy Duchemin
Messages : 63
Enregistré le : 21 Mai 2011, 18:55

Messagepar Remy Duchemin » 11 Aoû 2013, 19:38

Merci beaucoup pour votre réponse et le temps pris.


Retourner vers « Questions en cours »

Qui est en ligne

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