05/10/2024
Molti utenti R sono convinti che `rm(list = ls())` resetti la sessione di lavoro e il relativo workspace.
Non è proprio così.
L'istruzione `rm(list = ls())` cancella solo gli oggetti creati durante la sessione, ma non proprio tutti.
In R è possibile creare oggetti nascosti utilizzando un nome che inizia con il carattere ".", cioé con il punto.
Questi oggetti non vengono elencati dalla chiamata `ls()`, ma solo dalla chiamata `ls(all = TRUE)`.
Di conseguenza per rimuovere tutti gli oggetti nello spazio di lavoro occore usare `rm(list = ls(all = TRUE))`.
Ma durante una sessione di lavoro è possibile:
- caricare pacchetti con le funzioni `library()` o `require()`,
- modificare alcune opzioni con una chiamata `option(optn_name = optn_value)`,
- modificare le opzioni grafiche con una chiamata `par(par_name = par_value)`,
- impostare o modificare variabili d'ambiente con una chiamata `Sys.setenv()`.
`rm(list = ls())` oppure `rm(list = ls(all = TRUE))` non hanno alcun effetto sui pacchetti, sulle opzioni, sulle opzioni grafiche e sulle variabili di ambiente, che rimarranno tutte nello stato in cui si trovavano al momento della chiamata `rm(...)`.
Salva questo post e seguimi se vuoi conoscere le best practice per una sessione di lavoro R pulita.