IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Importer données avec plusieurs observations par ligne


Sujet :

R

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut Importer données avec plusieurs observations par ligne
    Bonjour,

    J'ai un ensemble de données avec plusieurs observations par ligne.
    Est-il possible de faire comprendre à R (par une fonction read.table, scan ou autre) que mes données sont ainsi structurées ?
    Par exemple, j'ai trois variables Var1, Var2, Var3, et mon fichier contient 7 observations comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Obs1V1 Obs1V2 Obs1V3 Obs2V1 Obs2V2 Obs2V3 Obs3V1 Obs3V2 Obs3V3
    Obs4V1 Obs4V2 Obs4V3 Obs5V1 Obs5V2 Obs5V3 Obs6V1 Obs6V2 Obs6V3
    Obs7V1 Obs7V2 Obs7V3

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut wideToLong
    Bonjour,

    Une proposition en transposant les données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    df <- read.table(col.names=c("V1_1","V2_1","V3_1",
                                 "V1_2","V2_2","V3_2",
                                 "V1_3","V2_3","V3_3"),
                     text="
    Obs1V1 Obs1V2 Obs1V3 Obs2V1 Obs2V2 Obs2V3 Obs3V1 Obs3V2 Obs3V3
    Obs4V1 Obs4V2 Obs4V3 Obs5V1 Obs5V2 Obs5V3 Obs6V1 Obs6V2 Obs6V3
    Obs7V1 Obs7V2 Obs7V3",
                     fill=TRUE)
    df$id <- as.numeric(row.names(df))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > df
        V1_1   V2_1   V3_1   V1_2   V2_2   V3_2   V1_3   V2_3   V3_3 id
    1 Obs1V1 Obs1V2 Obs1V3 Obs2V1 Obs2V2 Obs2V3 Obs3V1 Obs3V2 Obs3V3  1
    2 Obs4V1 Obs4V2 Obs4V3 Obs5V1 Obs5V2 Obs5V3 Obs6V1 Obs6V2 Obs6V3  2
    3 Obs7V1 Obs7V2 Obs7V3                                            3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    df2 <- lsr::wideToLong(df)
    df2 <- df2[which(df2$V1 != "" & df2$V2 != "" & df2$V3 != ""),]
    df2$within <- as.numeric(as.character(df2$within))
    df2$tri <- df2$id*10 + df2$within
    df2 <- df2[order(df2$tri),]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    > df2
      id within     V1     V2     V3 tri
    1  1      1 Obs1V1 Obs1V2 Obs1V3  11
    4  1      2 Obs2V1 Obs2V2 Obs2V3  12
    7  1      3 Obs3V1 Obs3V2 Obs3V3  13
    2  2      1 Obs4V1 Obs4V2 Obs4V3  21
    5  2      2 Obs5V1 Obs5V2 Obs5V3  22
    8  2      3 Obs6V1 Obs6V2 Obs6V3  23
    3  3      1 Obs7V1 Obs7V2 Obs7V3  31
    Cordialement,

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/02/2017, 22h58
  2. Réponses: 3
    Dernier message: 08/02/2017, 22h35
  3. [AC-2013] Formulaire en feuille de données avec plusieurs lignes
    Par charlieda dans le forum IHM
    Réponses: 2
    Dernier message: 12/01/2015, 13h55
  4. Réponses: 0
    Dernier message: 27/04/2012, 18h16
  5. Réponses: 4
    Dernier message: 02/09/2004, 21h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo