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 :

Soustraire deux valeurs et compiler les résultats.


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    Par défaut Soustraire deux valeurs et compiler les résultats.
    Bonjour à tous,

    Je dispose d'un jeu de fichiers csv (colonnes séparés par des virgules) tous contenu dans un même répertoire. Je souhaiterais dans chacun de ces fichiers, soustraire la case D4 avec D3. (=D4-D3). En clair, il s'agit de la 4eme et 3eme ligne de la 4eme colonne.
    Puis, je souhaiterais compiler tous ces résultats sous la forme :
    |nom du fichier 1|valeur obtenue|
    |nom du fichier 2|valeur obtenue|...

    Pour cela je pense que le début du code dans R doit être ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    setwd("C:REPERTOIRE")
    liste_fichiers <- list.files(pattern="csv")
    n=length(liste_fichiers)
    dftot=data.frame()
    Pour la suite, je ne sais pas trop...

    Pourriez-vous m'aider ?

    Merci par avance

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Soustraire deux valeurs et compiler les résultats
    Bonjour fanfanus,

    Pour la suite, je ne sais pas trop...
    Il faut procéder pas à pas. Commencez par calculer D4-D3 sur un fichier. Vous pourrez ensuite boucler sur les fichiers.

    Cordialement,

  3. #3
    Membre averti
    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
    Par défaut
    Un truc comme ça...?
    (je ne sais pas trop, je débute.. )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dim(test)
    test[4,4]-test[3,4]

  4. #4
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Soustraire deux valeurs et compiler les résultats
    Bonjour,

    Oui, c'est très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    > df <- data.frame(V1 = c(1,4,6,3), V2 = c(4,-1,3,2), V3 = c(4,-4,-2,1), V4 = c(3,9,8,10))
    > df
      V1 V2 V3 V4
    1  1  4  4  3
    2  4 -1 -4  9
    3  6  3 -2  8
    4  3  2  1 10
    > df[4,4]-df[3,4]
    [1] 2
    Maintenant vous pouvez essayer de boucler sur les fichiers sur le modèle de votre précédent message.

    Cordialement,

  5. #5
    Membre averti
    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
    Par défaut
    J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    setwd("C:/Users/fanfa/Desktop/data_csv_Rm/temps")
    liste_fichiers <- list.files(pattern="csv")
    n=length(liste_fichiers)
    dftot=data.frame()
    for (i in 1:n) 
      {
      df <- read.csv(liste_fichiers[i])
      df[4,4]-df[3,4]
      }
    dftot
    write.table(dftot,file="myval.txt")
    Mais j'obtiens ce message d'erreur :
    Error in read.table(file = file, header = header, sep = sep, quote = quote, : plus de colonnes que de noms de colonnes
    Voici un de mes fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EVENTS
    Subject,Context,Name,Time (s),Description
    AA01,General,Foot Strike,1.400000,The instant the heel strikes the ground
    AA01,General,Foot Off,4.470000,The instant the toe leaves the ground
    AA01,General,Event,5.170000,A general (unspecified) event
    AA01,General,Event,5.410000,A general (unspecified) event
    C'est peut-être la ligne 1 qui bloque ?

  6. #6
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Soustraire deux valeurs et compiler les résultats
    Bonjour,

    Oui, c'est la ligne 1 qui bloque. Les noms de variables sont en ligne 2. Vous pouvez utiliser l'option skip=1 pour ignorer la première ligne.

    Une étape intermédiaire avant de faire la boucle est de tester votre programme sur deux fichiers.

    Cordialement,

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

Discussions similaires

  1. [2008] Soustraire les résultats de deux requêtes
    Par demerius dans le forum Développement
    Réponses: 2
    Dernier message: 04/11/2014, 16h11
  2. Réponses: 2
    Dernier message: 24/06/2009, 22h38
  3. [EJBQL] Requête avec une valeur constante dans les champs résultat
    Par adamo901 dans le forum Java EE
    Réponses: 1
    Dernier message: 13/04/2009, 00h32
  4. Regroupement de deux tables avec juste les valeurs identiques
    Par ange_dragon dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/07/2007, 15h42
  5. Réponses: 1
    Dernier message: 28/06/2005, 09h15

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