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 :

extraire donnees fichier txt en fonction d'un autre fichier txt


Sujet :

R

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Points : 68
    Points
    68
    Par défaut extraire donnees fichier txt en fonction d'un autre fichier txt
    Bonjour,

    Après quelques heures de recherches infructueuses, je me permets d'ouvrir cette discussion. En espérant ne pas faire doublon.

    J'ai un fichier txt avec des navires et leur activité de pêche (3 millions de lignes et 50 colonnes) = pêche.txt
    D'un autre côté, j'ai une liste de navire définie (2900 navires) = navires.txt

    Je voudrais extraire de mon fichier pêche.txt uniquement la donnée qui correspond à mes navires.txt
    Sachant que les navires sont répétés plusieurs fois car j'ai les jours de pêche

    Étant super nulle sous R mais obligée de l'utiliser à cause de la taille des fichiers, je suis incapable de vous fournir un bout de code à corriger.
    Je connais la fonction subset mais je ne sais pas comment l'adapter pour qu'elle aille chercher l'info dans un txt.
    Merge, cbind ou rbind ne fonctionnent pas (ou je ne sais pas les utiliser)

    Je vous remercie pour votre aide !

    A +
    Muriel.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Points : 66
    Points
    66
    Par défaut
    Bonjour,
    Juste une petite inquiétude. Tu veux gérer 3 millions de lignes sur R, il faut faire attention car si tes données à la taille des données sur R bien que R ne s’améliore de plus en plus pour gérer des gros volumes de données.

    je vais proposer une solution dont je suis sur qu'elle n'est pas optimale dont tu pourras l'optimiser. Je vais l'appliquer sur un jeux de données que je dispose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    (donnee <- read.csv("arbre.csv", sep=""))
     
     
    IndiceEgal=function(X,a){
      #Retourne les indices ou X est égal à a
      return(which(X==a))
    }
     
    #Valeurs des modalités que je recherche
    nom=c("Couvert","Pluie" )
     
    #Je compare chaque valeur du vecteur nom à toutes les valeurs du vecteur donnee
    res=sapply(donnee[,1],funEgal,nom)
    #Je recupere les indices qui sont égaux aux noms
    Indice=which(is.na(as.numeric(res))==F)
     
    #Je recupere le resultat
    (resultat=donnee[Indice,])

    Et résultat voici ce que j'obtiens


    Nom : resultat.PNG
Affichages : 280
Taille : 34,4 Ko


    Courage

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Points : 68
    Points
    68
    Par défaut
    Salut Fabricien26,

    Je te remercie pour ton aide.
    Malheureusement, ce que tu proposes est pour 2 valeurs

    Ce que je recherche c'est une liste de 2900 bateaux

    J'ai finalement trouvé la solution en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Bato <- read.table(paste0(Chem, "liste_Navires.txt"), header=TRUE, dec=".", sep=";", stringsAsFactors = FALSE)
    liste <- Bato$Var1
     
    File <- subset(mydata, NAVS_COD %in% liste)
    Il suffisait tout simplement de créer un objet avec ma liste de bateaux....

    Merci d'avoir regardé et tes lignes de codes ne sont pas perdues, je suis sure que je pourrais les recycler un de ces 4 !
    A +

    Muriel.

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

Discussions similaires

  1. supprimer un ligne d'un fichier txt en fonction d'un autre
    Par sabnac dans le forum Windows Forms
    Réponses: 12
    Dernier message: 16/04/2009, 18h39
  2. appel d'une fonction dans un autre fichier jss
    Par Davee dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/06/2008, 20h12
  3. appel d'une fonction dans un autre fichier
    Par funboard dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2008, 09h26
  4. Réponses: 5
    Dernier message: 29/03/2007, 13h09
  5. Comment utiliser les fonctions d'un autre fichier?
    Par zuzuu dans le forum Général Python
    Réponses: 8
    Dernier message: 14/12/2006, 18h22

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