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 :

boucle opération sur une série de colonnes


Sujet :

R

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Points : 22
    Points
    22
    Par défaut boucle opération sur une série de colonnes
    Bonjour à tous,
    C'est encore moi !

    Je butte sur un petit soucis. Je souhaite réaliser une division des colonnes dont le nom va de "M1" à "Lc5" ou [,5:115] avec une même est unique colonne.

    Du coup j'ai ma formule pour 1 seule colonne ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    temps_distance <- data.frame()
    temps_distance <- read.csv("C:/Users/fanfa/Desktop/data_csv_Rm/temps/temps_moyenne.csv", header=TRUE, sep=";")
    vitesse <- data.frame(temps_distance["M1"]/temps_distance["duree"])
    Pour créer ma boucle j'ai donc fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    temps_distance <- data.frame()
    temps_distance <- read.csv("C:/Users/fanfa/Desktop/data_csv_Rm/temps/temps_moyenne.csv", header=TRUE, sep=";")
    for (i in 5:115)
    {
    vitesse <- data.frame(temps_distance[,[i]]/temps_distance["duree"])
    }
    Mais ça ne fonctionne pas. J'obtiens l’erreur :
    Erreur : '[' inattendu(e)
    Du coup je ne sais pas comment faire ?

    Vous pouvez m'aider ?

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    R travaille par défaut par colonne. De plus, il y utilise le recyclage des données quand c'est nécessaire. Le code est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vitesse <- temps_distance[,5:115] / temps_distance[,"duree"]
    De plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temps_distance <- data.frame()
    est inutile puisque le data.frame est créé par me read.csv et la boucle écrase à chaque itération les données de la variable vitesse qui ne contiendra à la fin que le dernier calcul.

    En ce qui concerne l'erreur, [] est l'opérateur d'indexation et [i] n'indexe aucun vecteur. Il faut écrire :
    pour indexer la colonne i du data.frame. Si temps_distance est un data.frame, temps_distance[,i] est un vecteur alors que temps_distance[i] est un data.frame d'une colonne. Cela provient du fait que le data.frame est une sous-classe de list. Un data.frame est donc une liste dont chacun des membres est une colonne. temps_distance[i] référence alors la sous-liste i. Dans le même ordre d'idée, temps_distance[1:115] et temps_distance[,1:115] sont alors équivalents bien que la seconde écriture soit plus compréhensible.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Super.
    MErci pour l'explication détaillée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2015, 20h27
  2. [Débutant] Opération sur une colonne de ma matrice
    Par jimbe dans le forum MATLAB
    Réponses: 8
    Dernier message: 04/07/2015, 13h16
  3. Réponses: 7
    Dernier message: 18/06/2012, 15h53
  4. opérations sur une même colonne
    Par sriverxp dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/05/2010, 20h43
  5. Réponses: 1
    Dernier message: 27/09/2007, 15h31

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