Pagina personale di:
Carlo Vecchio
appunti di C#, R, SQL Server, ASP.NET, algoritmi, numeri
Vai ai contenuti

R - Ambiente di lavoro

R
Ambiente di lavoro
Directory di lavoro
  • Nella directory di lavoro sono scritti i seguenti file utilizzati da RStudio:
    • ".RData" --> oggetti dell'ambiente di lavoro (finestra "Environment").
    • ".Rhistory" --> contiene tutti i comandi dati a RStudio (finestra "History").

# Leggere la directory di lavoro.
getwd()
[1] "C:/Users/carlo/Documents/Projects R/Examples/Parte 1"
# Scrivere la directory di lavoro.
setwd("C:\\Users\\carlo\\Documents\\Projects R")

Help in linea
  • L'ambiente RStudio ha integrato un help in linea.
  • Per avere l'aiuto su una qualsiasi funzione, dare il comando help() indicando la funzione.

help("grep")

  • L'aiuto appare nella finestra "Help" di RStudio.
  • Per ottenere gli argomenti di una funzione, dare il comando args() indicando la funzione.

args("grep")

Pacchetti (Packages)
  • R possiede già una serie di librerie e funzioni. È possibile installare ulteriori pacchetti (packages) per eseguire compiti specifici. Al momento ne esistono alcune migliaia.
  • I pacchetti possono essere installati e rimossi.
  • Ecco alcuni esempi utilizzando il pacchetto "swirl".

# Installa il pacchetto "swirl".
install.packages("swirl")

# Installa più pacchetti con la funzione c().
install.packages(c("pacchetto1","pacchetto2", "pacchetto3"))

# Installa il pacchetto "swirl" con tutte le dipendenze.
install.packages("swirl", dependencies = TRUE)

# Rimuove il pacchetto "swirl".
remove.packages("swirl")

  • Una volta che si è installato un pacchetto, per poter essere utilizzato va caricato nella memoria della sessione di lavoro con l'apposita funzione library() o require().

# Carica nella memoria della sessione di lavoro, il pacchetto "swirl".
# Le funzioni library() e require() sono equivalenti.
library(nome.pacchetto)
require(nome.pachetto)

# Per scaricare un pacchetto dalla memoria della sessione di lavoro.
detach("swirl")

  • Naturalmente i pacchetti vengono aggiornati dai programmatori. Per verificare la presenza di aggiornamenti ed eventualmente aggiornarli, utilizzare il comando successivo.

# Aggiorna i pacchetti (senza domandare se applicare l'aggiornamento)
update.packages(ask = TRUE)

  • Per ottenere l'elenco dei pacchetti installati o quello dei pacchetti disponibili, utilizzare i comandi successivi.

# Elenco dei pacchetti installati.
View(installed.packages())
# Elenco pacchetti disponibili.
View(available.packages())

  • Per ottenere invece l'elenco dei pacchetti caricati nella sessione di lavoro, utilizzare il comando search().

# Elenco dei pacchetti caricati.
search()
[1] ".GlobalEnv"        "tools:rstudio"     "package:stats"     "package:graphics"
[5] "package:grDevices" "package:utils"     "package:datasets"  "package:methods"  
[9] "Autoloads"         "package:base"  

  • La maggior parte dei pacchetti si trova sul sito CRAN: https://cran.r-project.org.
  • Tutto quanto descritto riguardo l'installazione e il caricamento dei pacchetti, può essere ottenuto direttamente in RStudio, nella finestra "Packages".

Pacchetti con la stessa funzione
  • Nel caso che due o più pacchetti abbiano una funzione con lo stesso nome, per identificare a quale funzione ci si riferisce, utilizzare la sintassi seguente con il nome del pacchetto, l'operatore '::' e il nome della funzione.

package::function()

Problema nell'installazione di pacchetti
  • Installando un pacchetto (nel mio caso "xlsx"), RStudio ha dato il seguente messaggio:

WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/carlo/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)

  • Come si vede, nel messaggio è indicata anche la directory dove installare Rtools.
  • L'installazione del pacchetto quindi non è andata a buon fine, anche caricando il pacchetto con library(), RStudio dà l'errore:

Error: package or namespace load failed for ‘xlsx’:
.onLoad failed in loadNamespace() for 'rJava', details:
 call: fun(libname, pkgname)
 error: JAVA_HOME cannot be determined from the Registry

  • Ho risolto così.
  • Primo, installando Rtools dal sito https://cran.r-project.org/bin/windows/Rtools/.
  • L'installazione va fatta nella cartella indicata nel messaggio sopra riportato.
  • Inoltre:
    • ho selezionato il tipo di installazione raccomandata;
    • ho impostato "Add rtoolsto system PATH".
  • Dopo questa installazione il Warning non si è presentato, ma restava l'errore nel caricamento del pacchetto in memoria.
  • Questo errore è stato risolto installando il runtime di Java (nel mio caso la versione a 64 bit).

© 2022 Carlo Vecchio
Torna ai contenuti