5 votes

La programmation R, nommant le fichier de sortie en utilisant une variable

Je voudrais rediriger la sortie vers un fichier en utilisant une instruction write.csv. Je veux écrire 16 fichiers de sortie différents, en étiquetant chacun avec l'extension de 1 à 16.

Exemple tel qu'il est écrit actuellement:

    trackfilenums=1:16
    for (i in trackfilenums){
       calculs etc
       write.csv(max.hsi, 'Severity_Index.csv', row.names=F)
    }

Je voudrais que les fichiers csv de sortie soient étiquetés 'Severity_Index_1.csv', 'Severity_Index_2.csv', etc. Je ne suis pas sûr de comment faire cela en langage R.

Merci! Kimberly

13voto

Sarah Points 721

Vous voudrez utiliser la commande coller :

write.csv(max.hsi, paste0("Severity_Index_", i,".csv"), row.names=F)

1voto

lebatsnok Points 1355

Certaines personnes préfèrent avoir des noms de fichiers comme Nom_01 Nom_02 etc au lieu de Nom_1 Nom_2 etc. Cela peut, par exemple, rendre l'ordre alphabétique plus logique : avec certains logiciels, sinon, 10 viendrait après 1, 20 après 2, etc.

Ce type de numérotation peut être réalisé avec sprintf :

sprintf("Indice_de_Gravité_%02d.csv", 7)

La partie intéressante est %02d -- cela indique que i est une valeur entière (on pourrait aussi utiliser %02i) qui occupera au moins 2 positions, et un zéro initial sera utilisé si nécessaire.

# essayez aussi
sprintf("Indice_de_Gravité_%03d.csv", 7)
sprintf("Indice_de_Gravité_%2d.csv", 7)

0voto

Scott Ritchie Points 3814

En complément des autres réponses données ici, je trouve qu'il est également judicieux de nettoyer la chaîne collée pour s'assurer qu'elle est adaptée au système de fichiers. À cette fin, j'ai la fonction suivante :

fsSafe <- function(string) {
 safeString <- gsub("[^[:alnum:]]", "_", string)
 safeString <- gsub("_+", "_", safeString)
 safeString
}

Cela supprime simplement tous les caractères non alphabétiques et non numériques et les remplace par un tiret bas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X