L'astuce du jour : nom des fichiers

Aller en bas

L'astuce du jour : nom des fichiers

Message  flbresson le Mar 7 Déc - 13:23

Un petit truc simple. Lorsque vous souhaitez utiliser un fichier quelconque dans votre répertoire de travail (script, base de données ou autre) mais que vous avez oublié le nom exact du fichier, pas la peine d'ouvrir votre gestionnaire de document. La commande list.files() permet de récupérer la liste des fichiers d'un répertoire donné. Par exemple, si je souhaites récupérer une des bases de mon dossier courant, je fais :

Code:

 > list.files()
 [1] "c04adult.0804.pdf" "C04ADULT.XPT"      "C04AT15.XPT"     
 [4] "C04AT16.XPT"      "C04AT1.XPT"        "C04CH1.XPT"     
 [7] "C04CHILD.XPT"      "C04H13.XPT"        "C04HHNEW.XPT"   
[10] "C04HHOLD.XPT"      "C04HH.XPT"        "C04HT3.XPT"     
[13] "C04HT4.XPT"        "c04nutr.0804.pdf"  "C04NUTR1.XPT"   
[16] "C04NUTR2.XPT"      "C04NUTR3.XPT"

Imaginons que je m'intéresse au contenu du dossier CHNS-2006 qui est au même niveau que mon répertoire de travail, je fais alors :
Code:
> list.files("../CHNS-2006/")
 [1] "c06adult.sas7bdat" "c06at15.sas7bdat"  "c06at16.sas7bdat"
 [4] "c06at1.sas7bdat"  "c06child.sas7bdat" "c06cht1.sas7bdat"
 [7] "c06ct13.sas7bdat"  "c06ct14.sas7bdat"  "c06ct15.sas7bdat"
[10] "c06diet1.sas7bdat" "c06hhnew.sas7bdat" "c06hhold.sas7bdat"
[13] "c06hh.sas7bdat"    "c06ht13.sas7bdat"  "c06ht3.sas7bdat" 
[16] "c06ht4.sas7bdat"  "c06nutr1.sas7bdat" "c06nutr2.sas7bdat"
[19] "c06nutr3.sas7bdat"

Maintenant, je peux utiliser de manière intelligente le concept d'objet pour récupérer des bases de données. Par exemple :
Code:

> library(foreign)
> viveR <- list.files()
> viveR
 [1] "c04adult.0804.pdf" "C04ADULT.XPT"      "C04AT15.XPT"     
 [4] "C04AT16.XPT"      "C04AT1.XPT"        "C04CH1.XPT"     
 [7] "C04CHILD.XPT"      "C04H13.XPT"        "C04HHNEW.XPT"   
[10] "C04HHOLD.XPT"      "C04HH.XPT"        "C04HT3.XPT"     
[13] "C04HT4.XPT"        "c04nutr.0804.pdf"  "C04NUTR1.XPT"   
[16] "C04NUTR2.XPT"      "C04NUTR3.XPT"
> Stata.pue <- read.xport(viveR[2])

Plus fort, je créé un objet de type liste contenant sous forme de data.frame les bases C04ADULT.XPT, C04AT15.XPT, C04AT16.XPT, C04AT1.XPT et C04CH1.XPT :
Code:
> viveR[2:6]
[1] "C04ADULT.XPT" "C04AT15.XPT"  "C04AT16.XPT"  "C04AT1.XPT"  "C04CH1.XPT" 
> Utilisez.LaTeX <- lapply(viveR[2:6],read.xport)
> names(Utilisez.LaTeX) <- viveR[2:6]
summary(Utilisez.LaTeX[[5]])
      H1D            H5A              H6              H7     
 Min.  :1.000  Min.  :1.000  Min.  :-9.000  Min.  :1.000 
 1st Qu.:1.000  1st Qu.:1.000  1st Qu.: 3.000  1st Qu.:3.250 
 Median :1.000  Median :1.000  Median :11.000  Median :7.000 
 Mean  :1.421  Mean  :1.105  Mean  : 6.778  Mean  :5.333 
 3rd Qu.:2.000  3rd Qu.:1.000  3rd Qu.:12.000  3rd Qu.:7.000 
 Max.  :4.000  Max.  :3.000  Max.  :12.000  Max.  :9.000 
                                NA's  : 1.000  NA's  :1.000 
      H8              H9              HHID04              LINE04     
 Min.  :1.000  Min.  :-99.000  Min.  :211103095  Min.  : 3.000 
 1st Qu.:1.000  1st Qu.:  0.000  1st Qu.:416753523  1st Qu.: 3.000 
 Median :2.000  Median :  5.500  Median :431102083  Median : 4.000 
 Mean  :3.278  Mean  :  6.333  Mean  :420960770  Mean  : 7.947 
 3rd Qu.:5.750  3rd Qu.: 12.250  3rd Qu.:487151043  3rd Qu.: 5.500 
 Max.  :8.000  Max.  : 56.000  Max.  :522403007  Max.  :32.000 
 NA's  :1.000  NA's  :  1.000                                     
    COMMID04            T1              T2              T3     
 Min.  :211103  Min.  :21.00  Min.  :1.000  Min.  :1.000 
 1st Qu.:416754  1st Qu.:41.50  1st Qu.:2.000  1st Qu.:1.000 
 Median :431102  Median :43.00  Median :2.000  Median :2.000 
 Mean  :420961  Mean  :41.89  Mean  :1.789  Mean  :2.211 
 3rd Qu.:487151  3rd Qu.:48.50  3rd Qu.:2.000  3rd Qu.:4.000 
 Max.  :522403  Max.  :52.00  Max.  :2.000  Max.  :4.000 
                                                               
      T4              T5     
 Min.  :1.000  Min.  : 4.00 
 1st Qu.:2.000  1st Qu.: 7.50 
 Median :3.000  Median :15.00 
 Mean  :2.842  Mean  :33.58 
 3rd Qu.:4.000  3rd Qu.:52.00 
 Max.  :4.000  Max.  :95.00
avatar
flbresson

Messages : 360
Date d'inscription : 19/11/2009
Age : 39
Localisation : Clermont-Ferrand

Voir le profil de l'utilisateur http://sites.google.com/site/flbresson2/

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum