Je suis en train de trouver un moyen d'arrêter des fichiers écrasement accidentel lors de l'utilisation de la sauvegarde() et save.image() R.fonction de prévention l'écrasement de fichiers lorsque vous utilisez save() ou save.image()
9
A
Répondre
7
Utilisez file.exists()
pour tester si le fichier existe et, si c'est le cas, ajoutez une chaîne au nom.
Edit:
Merci Marek, je vais développer votre idée un peu ... il pourrait ajouter à traiter à la fois save()
et save.image()
SafeSave <- function(..., file=stop("'file' must be specified"), overwrite=FALSE, save.fun=save) {
if (file.exists(file) & !overwrite) stop("'file' already exists")
save.fun(..., file=file)
}
Je n'Ecraser Enregistrer .. Si source()
a été utilisé dans une session REPL, les utilisateurs peuvent ne pas être conscients de l'écrasement de la fonction.
5
Comme Vince l'a écrit, vous pouvez utiliser file.exists()
pour vérifier l'existence.
Je propose de remplacer la fonction save
d'origine:
save <- function(..., file=stop("'file' must be specified"), overwrite=FALSE) {
if (file.exists(file) & !overwrite) stop("'file' already exists")
base::save(..., file=file)
}
Vous pouvez écrire semblable à remplacer save.image()
.
Est-ce que quelqu'un sait comment créer une boîte de dialogue pour informer l'utilisateur que le fichier à écrire existe déjà? L'utilisateur peut simplement fermer la session R sans le savoir et rien n'est sauvegardé. – ggg