2009-10-09 8 views

risposta

7
save() e

Utilizzare file.exists() per verificare se il file è presente e, se lo è, aggiungere una stringa al nome.

Edit:

Grazie Marek, mi spieghi la vostra idea un po '... poteva aggiungere questo a che fare sia con save() e 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) 
} 

non avrei Sovrascrivi Salva .. Se è stato utilizzato source() in una sessione REPL, gli utenti potrebbero non essere consapevoli della sovrascrittura della funzione.

+0

Qualcuno sa come creare una finestra di dialogo per notificare all'utente che il file da scrivere esiste già? L'utente può semplicemente chiudere la sessione R senza sapere e nulla viene salvato. – ggg

5

Come ha scritto Vince, è possibile utilizzare file.exists() per verificare l'esistenza.

suggerisco di sostituire originale save funzione:

save <- function(..., file=stop("'file' must be specified"), overwrite=FALSE) { 
    if (file.exists(file) & !overwrite) stop("'file' already exists") 
    base::save(..., file=file) 
} 

Si potrebbe scrivere simile per sostituire save.image().

Problemi correlati