Statistica con R

Atlante di anatomia
GraysAnatomy
Virus2
Atlante di anatomia del Bock
Atlante di anatomia del Gray
Atlante di virologia
Entamoeba coli1
Atlante di parassitologia
Atlante del protozoi
Citologia e istologia
Atlante di ematologia
Atlante dei protozoi intestinali
Atlante di citologia e istologia
Atlante di ematologia
Bayes
DNA_0527s
Informazioni: info@bayes.it
Scrivimi: webmaster@bayes.it

Ultimo aggiornamento: 15 gennaio 2014

223 011 visitatori
da maggio 2008 a dicembre 2013

Per la riproduzione dei contenuti del sito è necessario il permesso dell’Autore

NOTA LEGALE
 
L’interpretazione dei risultati delle analisi di laboratorio deve essere effettuata esclusivamente dal medico e alla luce dei dati clinici.
Questo sito ha uno scopo esclusivamente educativo e formativo. Pertanto le informazioni in esso contenute possono essere utilizzate esclusivamente a scopo didattico, e anche in questo caso sotto la responsabilità personale di chi le utilizza, sia per sé stesso sia per terzi.
Le informazioni contenute in questo sito non possono e non devono essere utilizzate né a scopo diagnostico, né a scopo prognostico, né a scopo terapeutico, né per qualsiasi attività che abbia un impatto sia diretto sia indiretto sullo stato di salute di  un individuo o di più individui.
Nessuna responsabilità può essere imputata all’autore per danni diretti o indiretti e di qualsivoglia natura che potrebbero essere causati a sé stessi o a terzi a causa di errori, imprecisioni, omissioni, interpretazioni o utilizzo dei contenuti di questo sito o dei siti cui esso fa riferimento.

 

 
NOTA SUI COLLEGAMENTI
ALLE FONTI BIBLIOGRAFICHE
 
La maggior parte dei collegamenti ad articoli scientifici riportati nel sito fa riferimento a riviste online che forniscono gratuitamente l’articolo originale. In alcuni casi è necessario registrarsi sul sito per avere libero accesso agli articoli: questo accade per esempio con il BMJ. Quando i collegamenti  fanno riferimento a fonti bibliografiche a pagamento, chi non ha sottoscritto un abbonamento con la rivista potrebbe vedere comparire un messaggio del tipo “access forbidden”, ma il più delle volte vedrà comparire una pagina che consente di acquistare online l’articolo originale.
 
 

Le statistiche complete del sito

Corso base di statistica con R

“Ma a cosa serve saper calcolare le radici quadrate?”
(Fabio Fazio)
 
“Quando non sai fare niente, bisogna essere almeno ambiziosi.”
(Georges Wolinsky)
 
 
New01 
Per scaricare l’ebook “Statistica con R per il laboratorio di analisi cliniche” fate click sul titolo qui a sinistra, o inquadrate il codice a barre bidimensionale qui sotto per scaricarlo sul vostro smartphone o tablet (sul quale deve essere installata l’app i-nigma o un equivalente) SCR
 
 
Perchè usare R, se esistono già MedCalc, Minitab, SAS, SPSS, Stata, Systat, decine di altri programmi di statistica e add-on per fare statistica con Excel (come ad esempio Analyse-it) e per fare statistica con Access (come ad esempio Total Access Statistics)? [a]
 
Per almeno quattro buone ragioni:
R è gratuito, e questo fatto è significativo, visto il costo di un pacchetto di statistica;
R è disponibile per tutti e tre i sistemi operativi più diffusi, cioè per Windows, per MacOS X e per Linux (personalmente ho installato la versione per Windows e quella per MacOS X e funzionano perfettamente entrambe);
→ una volta installata la versione base di R potete accedere a una raccolta di miglia di pacchetti di statistica aggiuntivi, anch'essi gratuiti, che offrono soluzioni di calcolo ed elaborazioni statistiche e grafiche per praticamente qualsiasi problema;
→ se non trovate quello che vi serve tra i pacchetti già disponibili (ma ne dubito), R vi permette di riutilizzare e adattare migliaia di funzioni già scritte e di scriverne di nuove per adattare un pacchetto già esistente ovvero per creare ex-novo il vostro pacchetto di analisi dei dati, orientato al vostro specifico problema.
 
R non è, come asseriscono gli stessi curatori del progetto, un semplice programma di statistica, ma un ambiente per il calcolo statistico, in continuo sviluppo e costantemente aggiornato. R è un programma open-source disponibile come software gratuito (free software) grazie al R Development Core Team (2009). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-0, URL http://www.R-project.org.
 
Il problema cruciale di R è che, essendo basato su un linguaggio di programmazione, è molto tecnico, e per questo è difficile superare le difficoltà iniziali, al punto che molti rinunciano ad utilizzarlo: e il senso di frustrazione che ne consegue è tale che in genere allontana definitivamente il soggetto da successivi tentativi. Lo scopo di questo corso è proprio quello di aiutarvi a superare queste difficoltà iniziali, per accedere al mondo di R: sono certo che chi è motivato ad affrontare qualche problema di analisi dei propri dati nell’ambito del laboratorio clinico vi troverà uno strumento straordinario.
 
In aggiunta a questo mio corso possono aiutare nel processo di apprendimento di R:
→ i manuali base di R;
→ il sito Quick-R;
→ il sito R Tutorial;
→ il sito Revolutions;
→ il sito R Graphical Manual.
 
Saranno inoltre utili i seguenti documenti, per i quali un ringraziamento va agli Autori che li hanno pubblicati consentendone il libero utilizzo a scopo didattico con la Licenza per Documentazione Libera GNU:
Introduzione ad R, di Roberto Boggiani, ;
Esercitazioni di statistica biomedica, di Matteo Dell'Omodarme;
Formulario di Statistica con R, di Fabio Frascati;
Applied Statistics for Bioinformatics using R, di Wim P. Krijnen;
Using R for Data Analysis and Graphics - Introduction, Code and Commentary, di J. H. Maindonald;
Una guida all'utilizzo dell'ambiente statistico R, di Angelo M. Mineo;
R: un ambiente opensource per l'analisi statistica dei dati, di Vito Ricci;
Analisi delle serie storiche con R, di Vito Ricci;
Rappresentazione analitica delle distribuzioni statistiche con R, di Vito Ricci;
Principali tecniche di regressione con R, di Vito Ricci;
simpleR - Using R for Introductory Statistics, di John Verzani.
 
Questo corso base di statistica con R è organizzato in tre sezioni:
R funzioni statistiche
 R funzioni grafiche
 R problemi scelti
nelle quali trovate una serie di blocchi di codice che si possono copiare direttamente dalla pagina web e incollare nella Console di R per eseguirli immediatamente, ma anche salvare sotto forma di script riutilizzabili con i vostri dati e facilmente modificabili per adattarli ai vostri bisogni.
 
Mentre coloro che già hanno un minimo di dimestichezza con R consulteranno immediatamente le sezioni sopra riportate per vedere se ci trovano qualcosa di interessante, questa parte preliminare è fortemente raccomandata a coloro che sono nella fase di primo approccio a R, in quanto contiene argomenti generali che non è possibile ignorare:
download e installazione base di R;
la Console dei comandi di R;
documentazione di R e pacchetti aggiuntivi rispetto all’installazione base;
come strutturare i dati da importare in R;
codice R, script e dati dimostrativi utilizzati per questo corso;
un esempio per iniziare;
il sistema di help di R;
come importare in R i dati di un file .csv;
come importare in R i dati di un file .xls;
gestione dei file con dati mancanti;
inserimento dati dalla Console di R;
salvare la sessione di R in un file;
salvare i grafici di R in un file;
l’interfaccia grafica (GUI) di R;
utilizzare i dati e gli script con MacOS X.
 
Attenzione: le indicazioni qui riportate fanno riferimento alla versione di R per Windows©. Per MacOS X© vedere come utilizzare i dati e gli script con MacOS X.
 
Download e installazione base di R
 
La prima cosa da fare se volete cimentarvi con R è collegarvi al sito http://www.r-project.org/ che trovate anche digitando semplicemente R su Google, ed effettuare il download dell’ultima versione del programma da uno dei siti del CRAN (Comprehensive R Archive Network), in Italia o in una delle nazioni che trovate elencate. Sul sito dal quale avrete deciso di effettuare il download, qualsiasi esso sia, troverete i link alle versioni di R precompilate per i sistemi operativi Windows, Linux e MacOS X.
 
Dal sito http://www.r-project.org/ fate click sui vari collegamenti fino a raggiungere la pagina di download, selezionate la sola distribuzione/installazione base (dei pacchetti aggiuntivi parleremo tra poco), salvatela sul vostro disco in un posto sicuro (il file avrà un nome del tipo R-2.9.1-win.exe, dove invece di 2.9.1 troverete la sigla dell’ultima versione aggiornata che avete appena scaricato). Terminato il download fate doppio click sul file scaricato e seguite le istruzioni per installare R sul vostro PC.
 
La Console dei comandi di R
 
Al termine dell’installazione sul desktop del PC vi comparirà l’icona di R-ico
Fate doppio click su di essa per avviare il programma, e vi apparirà la Console di R con la quale inizieremo a lavorare.
 
R-Console
 
Il simbolo > è il prompt di R, e indica che R è in attesa che scriviamo che cosa vogliamo fare tramite la tastiera (come faremo tra poco) e nel suo linguaggio (del quale cercheremo di apprendere i rudimenti).
 
Le prime tre cose che facciamo con R sono molto semplici:
→ al prompt di R scrivete demo(), premete invio, e vi comparirà un elenco di dimostrazioni disponibili nel pacchetto base appena installato;
→ scrivete ora demo(graphics), premete invio, seguite le istruzioni che compaiono nella Console di R e potrete assistere  a una dimostrazione delle capacità grafiche della sola installazione di base. Nei pacchetti aggiuntivi disponibili per R (vedere appresso), troverete una infinità di altre possibilità di elaborazione grafica;
→ scrivete ora help.start(), premete invio, e nel giro di qualche secondo vedrete aprirsi nel browser la guida (l’help) di R, che come vedete è quindi sempre disponibile ed assai completo.
 
Documentazione di R e pacchetti aggiuntivi rispetto all’installazione base
 
Prima di procedere vi consiglio di esplorare meglio il sito di R http://www.r-project.org/ e in particolare vi consiglio di prendere confidenza due sezioni importanti.
 
La prima è la sezione Documentation nella quale potete fare click su Manuals e scaricare, in formato pdf,  tutti i manuali relativi alla versione di R che avete appena installato, ovvero da qui potete accedere alla sezione contributed documentation nella quale trovare anche dei tutorial in lingua italiana. Anche se in questo corso base non faremo diretto ricorso alla documentazione disponibile sul sito di R, questa risulterà ovviamente essenziale per affrontare le esigenze più evolute che vi si manifesteranno (mi auguro) dopo questo corso.
 
La seconda è la sezione Software cui si accede dopo avere selezionato il CRAN, e nella quale potete fare click su Packages per visualizzare le migliaia di pacchetti che è possibile aggiungere all’installazione base che avete effettuato, ciascuno orientato alla risoluzione di un problema specifico. Dalla console di R è possibile scaricare un pacchetto dal CRAN prescelto (il pacchetto viene installato automaticamente) selezionando dal menù Pacchetti l’opzione Installa pacchetti.... Per familiarizzare con questa funzione scaricate il pacchetto RODBC che ci servirà per importare i dati da file .xls. Attenzione: talora il pacchetto che si desidera installare presuppone uno o più altri pacchetti, cui esso si appoggia. In questo caso viene effettuato automaticamente il download e l’installazione di più pacchetti, tutti quelli tra loro concatenati e quindi necessariamente e contemporaneamente richiesti per garantire la funzionalità dell’unico pacchetto che si desiderava installare.
 
Come strutturare i dati da importare in R
 
Poiché R non dispone di una gestione brillante dei dati in forma tabellare, e comunque per ridurre al minimo l’impatto, parto dal presupposto che continuerete a gestire i vostri dati con lo strumento cui siete abituati, che io assumo essere un foglio elettronico (spreadsheet) che gestisce file in formato  .xls, e tipicamente Excel© o meglio ancora OpenOffice.org© Calc che è open-source e gratuito e del quale potete effettuare il download dal sito http://it.openoffice.org/.
 
Una struttura dei dati tipica è quella che segue
 

id

Sesso

Colesterolo

Trigliceridi

Urea

Creatinina

MT

M

189

164

32

0.6

GF

F

215

188

 

1.2

MC

F

197

153

26

0.5

SB

M

236

280

22

 

FE

F

203

158

48

1.3

 
nella quale le cose da notare sono assai semplici:
→ le colonne corrispondono alle variabili;
→ le righe corrispondono ai casi;
→ i nomi delle variabili sono riportati nella prima riga, e sono facoltativi (ma ovviamente raccomandati);
→ l’identificativo univoco di ciascun caso è riportato nella prima colonna (nella variabile che io per comodità denominerò sempre id), ed è facoltativo (può essere utile in casi specifici);
→ le variabili possono essere sia numeriche, sia qualitative (per esempio, qui, il Sesso);
→ è possibile definire una o più variabili in base alla/e quale/i raggruppare i dati (nell’esempio, i dati potranno essere elaborati o tutti insieme o suddivisi in due gruppi in base al Sesso). Poichè R riconosce lettere maiuscole e lettere minuscole, è indispensabile che la variabile in base alla quale i dati sono raggruppati sia codificata in modo rigoroso (sesso maschile sempre M, e non M o m a caso, eccetera);
→ è ammessa la mancanza di dati (per esempio qui manca la Creatinina del caso SB, e il campo è quindi vuoto), che R riconosce e classifica automaticamente riportando NA (Not Available).
 
Ulteriori possibili osservazioni sulla struttura dei dati emergeranno nel trattare i dati dimostrativi utilizzati per questo corso.
 
Codice R, script e dati dimostrativi utilizzati per questo corso
 
L’impostazione di questo corso è quella dell’imparare-facendo. Per questo ho predisposto nelle pagine web che trattano i vari argomenti (chi quadrato, statistiche elementari, eccetera) una serie di esempi di codice R che si riconoscono immediatamente in quanto:
→ iniziano con il simbolo #
→ terminano con il simbolo #
→ il codice che viene eseguito da R è riportato in grassetto e in colore
→ le parti di codice precedute dal simbolo # in nero sono commenti e non sono eseguite.
Per eseguire il codice R dovete semplicemente selezionarlo nella pagina web partendo dal cancelletto # che apre il blocco di codice fino a includere il cancelletto # che chiude il blocco di codice, copiarlo, e incollarlo nella Console di R. E vedrete immediatamente il risultato, che si tratti di una statistica o di un grafico.
 
Vedremo invece nei prossimi paragrafi l’approccio meno diretto ma più tradizionale basato sugli script, con esempi che dovete scaricare e salvare sul vostro PC, aprire ed eseguire, per familiarizzare con questo fondamentale strumento di R.
 
Data la necessità di disporre, per eseguire i vari esempi forniti, di alcuni pacchetti che inizialmente non avrete nella vostra installazione di R, è importante seguire gli esempi che faremo avendo sempre il PC collegato con Internet. Se dovesse comparire nella Console di R un messaggio del tipo “Errore in library(xyx) : there is no package called ‘xyx’” dovete semplicemente installare dal CRAN la libreria che vi manca.
 
Gli script sono semplici file in formato testo che contengono i comandi di R scritti con il linguaggio e la sintassi previste (il contenuto degli script è rappresentato da quello che d’ora in poi chiameremo “codice R”). In Windows è possibile aprirli, salvarli in formato .txt ed editarli utilizzando il Blocco note di Windows. In alternativa potete utilizzare l’Editor di R, che potete aprire dalla Console di R selezionando File >> Nuovo script per copiarvi del codice e salvarlo per un utilizzo successivo. Ricordo che dalla console di R gli script sono salvati di default con l’estensione .R invece che con l’estensione .txt ma di fatto si tratta di file di testo assolutamente identici. Dalla Console di R selezionando File >> Apri script potete aprire successivamente i file contenenti gli script che avete salvato.
 
Come noto i file nomedelfile.xls contengono dati nel formato per Excel© e OpenOffice.org© Calc. In realtà è raccomandato per R l’utilizzo di dati in formato csv (comma separated value), quindi noi utilizzeremo quasi sempre per i dati dimostrativi file del tipo nomedelfile.csv che possono essere generati sempre con Excel© e OpenOffice.org© Calc semplicemente selezionando il formato .csv al momento di salvare i dati. Negli esempi che ho fornito il separatore nei file .csv è il punto e virgola (;). R lo riconosce come tale in quanto come vedremo negli script viene specificato il separatore utilizzato nel file di dati .csv con il parametro sep=";". Cambiando il valore di questo argomento è possibile importare dati delimitati con la virgola (sep=","), con uno spazio vuoto (sep=" ") o con qualsiasi altro separatore. Ricordate che file creati su PC diversi e diversamente configurati potrebbero utilizzare differenti separatori di  campo.
 
Un esempio per iniziare
 
→ create la cartella C:\R\InputSource\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file InputSource.txt, InputSourceData.txt e InputSource.csv;
→ dalla Console di R con File >> Apri script... aprite il file c:\R\InputSource\InputSource.txt;
→ dalla finestra dell’Editor di R nella quale il file è stato aperto selezionate Modifica >> Esegui tutto.
 
Vedrete comparire questo grafico del tipo "diagramma a scatola e baffi" (“box & whiskers plot”) che illustra la concentrazione delle IgA (in g/L) in un gruppo di soggetti sani (Controlli) e la confronta graficamente con quella rilevata in soggetti con cirrosi alcolica (AC), epatite cronica attiva (CAH), epatite cronica persistente (CPH), epatite alcolica non cirrotica (NCAH).
 
IgAdemo
 
Mentre i dettagli di questo tipo di rappresentazione grafica sarannno discussi successivamente in uno specifico esempio, limitiamoci qui ad analizzare che cosa è accaduto. Innanzitutto nel file InputSource.txt è contenuto il seguente codice R:
 
# INIZIO ESEMPIO ********************************
# legge uno script e ne esegue il contenuto
source("c:/R/InputSource/InputSourceData.txt")
# FINE ESEMPIO ********************************
 
Le righe di codice precedute dal simbolo # rappresentano dei semplici promemoria, dei commenti, e non sono eseguite (prima regola di R). Quindi di fatto nel file InputSource.txt è contenuta una sola riga di codice da eseguire:
source("c:/R/InputSource/InputSourceData.txt")
 
che semplicemente indica a R di eseguire il codice sorgente (source()) che si trova in un file di cui viene specificato il percorso per intero (questa in R è una regola fondamentale). Come vedete il codice che va a leggere i dati e li rappresenta graficamente è contenuto nel file InputSourceData.txt: se aprite questo file con il Blocco note di Windows trovate il seguente codice R
 
# INIZIO ESEMPIO ********************************
# la prima riga contiene i nomi delle variabili, il separatore è parametrizzabile
# la prima colonna contiene la Diagnosi
# la seconda colonna contiene la concentrazione delle IgA in mg/dL
# notare / invece di \ su windows
mydata <- read.table("c:/R/InputSource/InputSource.csv", header=TRUE,
   sep=";")
# traccia Boxplot delle IgA per ciascuna diagnosi
boxplot(IgA~Diagnosi, data=mydata, main="IgA nelle malattie croniche del fegato",
   xlab="Diagnosi clinica", ylab="IgA in mg/dL", notch=FALSE, col="yellow")
# FINE ESEMPIO ********************************
 
Se togliete le righe di commento (che iniziano con #) vedete che tutta la complessa sequenza di istruzioni  che porta alla realizzazione del grafico è realizzata con due sole righe di istruzioni. Ecco evidenziato un fatto importante: R è un linguaggio conciso ed essenziale.
 
La prima riga di codice
mydata <- read.table("c:/R/InputSource/InputSource.csv", header=TRUE, sep=";")
 
dice che i dati devono essere letti (read.table()) dal file c:/R/InputSource/InputSource.csv, aggiunge che il file ha una intestazione (header=TRUE) nel quale si trovano i nomi delle variabili, che il separatore tra campi è un punto e virgola (sep=";") e che il contenuto del file di dati deve essere assegnato (<- è l’operatore di assegnazione) ad un oggetto denominato mydata.
 
I dati sono quindi contenuti nel file InputSource.csv. Se aprite questo file con il Blocco note di Windows ci trovate scritto (per concisione qui sono stati eliminate le numerose righe di dati intermedi):
 
Diagnosi;IgA
Controlli;1.22
......
NCAH;7.44
......
CPH;2.45
.....
CAH;2.35
......
AC;6.22
 
Nella prima riga sono riportati i nomi delle due variabili contenute nel file, rispettivamente la diagnosi (Diagnosi) e la concentrazione delle IgA in mg/dL (IgA), che sono separate da un punto e virgola (;). Nelle righe successive sono riportati i valori delle due variabili per ciascuno dei casi osservati.
 
La seconda riga di codice
boxplot(IgA~Diagnosi, data=mydata, main="IgA nelle malattie croniche del fegato", xlab="Diagnosi clinica", ylab="IgA in mg/dL", notch=FALSE, col="yellow")
 
traccia un diagramma a scatola e baffi (boxplot()), traendo i dati dall’oggetto mydata (data=mydata),  aggregando i dati per diagnosi (IgA~Diagnosi), aggregando cioè i valori della variabile IgA per ciascun valore della variabile Diagnosi. Aggiunge il titolo del diagramma (main="IgA nelle malattie croniche del fegato"), l’etichetta dell’asse delle x (xlab="Diagnosi clinica"), l’etichetta dell’asse delle y (ylab="IgA in mg/dL"), specifica che vogliamo la scatola di colore giallo (col="yellow"), e che le scatole non devono avere l’incisura (notch=FALSE, i dettagli di questo tipo di rappresentazione grafica sarannno discussi successivamente in uno specifico esempio).
 
Ora ripartiamo da capo:
→ chiudete tutti i file che avete aperto (l’Editor di R, la Console di R e quant’altro).
→ lanciate la Console di R facendo doppio click sull’icona di R presente sul desktop;
→ aprite il file InputSourceData.txt utilizzando il Blocco note di Windows;
→ selezionate e copiate tutto il codice/testo che vedete;
→ incollate il codice/testo così copiato nella Console di R.
 
Come vedete avete ottenuto lo stesso identico risultato di prima in un modo ancora più semplice. Ma adesso avete un vantaggio. Avete capito che per lavorare con R è sufficiente essere in grado di scrivere gli opportuni comandi nella Console di R: tutto qui. Anche se ovviamente gli script sono uno strumento fondamentale in quanto consentono di memorizzare i comandi, modificarli senza doverli riscrivere, costruirsi una libreria di file di testo contenenti i comandi orientati a specifici problemi, da riutilizzare senza dovere ridigitare ogni volta le sequenze di istruzioni.
 
Adesso:
→ nella Console di R digitate mydata e premete Invio.
 
Come vedete richiamando semplicemente il nome dell’oggetto (mydata) per vederlo presentato ordinatamente nella Console di R (spostatevi con i tasti Pag-su e Pag-giù per fare scorrere tutto quanto è accaduto finora ed è stato visualizzato nella Console di R ). 
 
Ancora:
→ nella Console di R digitate names(mydata) e premete invio;
→ nella Console di R digitate str(mydata) e premete invio.
 
Nel primo caso vedete i nomi (names) delle variabili contenute nell’oggetto mydata, nel secondo caso ne vedete la struttura (str).
 
Ora che abbiamo illustrato tutti i passi che verranno seguiti nella presentazione degli esempi, possiamo anche procedere ad una semplificazione dell’esposizione, eliminando le espressioni ridondanti, per migliorare la leggibilità del testo. Pertanto:
→ diamo per sottinteso “nella Console di R digitate
→ diamo per sottinteso “e premete Invio
→ utilizziamo la convenzione per cui il simbolo # indica l’inizio di un commento, e manteniamo per i commenti il carattere normale
→ utilizziamo la convenzione per cui il codice attivo di R, cioè quello che viene effettivamente eseguito, viene rappresentato in grassetto e colore bruno
 
Ecco allora che le tre azioni illustrate sopra diventano più concisamente (e, spero, chiaramente):
mydata # visualizza l’oggetto mydata
names(mydata) # visualizza nomi delle variabili in mydata
str(mydata) # visualizza la struttura di mydata
 
Il sistema di help di R
 
Ecco alcuni comandi che vi consentono di accedere rapidamente alle varie possibilità offerte dal sistema di help di R, e che vi suggerisco ovviamente di provare:
→ help navigabile con il browser, il più importante
help.start()
→ aiuto sulla funzione plot
help(plot)
→ aiuto sulla funzione plot
?plot
→ lista tutte le fuzioni che contengono la stringa plot
apropos("plot")
→ ricerca aiuto sul sito web di R
RSiteSearch("")
→ mostra i set di dati di esempio
data()
→ mostra un esempio della funzione plot, fare click sulla finestra del grafico per continuare
example(Theoph)
 
Potete accedere al sistema di help di R anche dal menù Aiuto della Console di R.
 
Come importare in R i dati di un file .csv
 
Ricordate che:
→ i file csv sono generati automaticamente da  Excel© e OpenOffice.org Calc© salvando il file con l’opzione Salva con nome... e scegliendo come Tipo di File: appunto un file .csv.
il formato csv è il formato raccomandato per importare i dati in R.
 
→ create la cartella C:\R\InputCSV\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file InputCSV.txt, InputCSVconid.csv e InputCSVsenzaid.csv;
→ dalla Console di R con File >> Apri script... aprite nell’Editor di R il file C:\R\InputCSV\InputCSV.txt, nel quale è contenuto il codice che vogliamo utilizzare e commentare.
 
Entrambi i file .csv contengono gli stessi dati relativi alla composizione in calcio, fosfato, ossalato e magnesio di 10 calcoli delle vie urinarie. Aprite il file InputCSVcoinid.csv utilizzando il Blocco note di Windows, per vedere come sono organizzati i dati in un tipico file csv (comma separated values) nel quale la prima variabile (id) contiene l’identificativo univoco del caso mentre le successive quattro contengono la quantità di Calcio, Fosfato, Ossalato  Magnesio (primo esempio):
 
id;Calcio;Fosfato;Ossalato;Magnesio
C1;99;81;69;61
C2;78;65;53;43
C3;81;66;38;54
C4;45;23;19;16
C5;44;18;24;19
C6;102;83;72;66
C7;83;68;49;45
C8;74;71;41;57
C9;38;19;22;14
C10;48;14;21;12
 
Nell’Editor di R vedete che nel primo esempio vi è una sola riga di codice così scritta
#
mydata <- read.table("c:/R/InputCSV/InputCSVconid.csv", header=TRUE, sep=";", row.names="id")
#
con la quale è possibile importare in R questi dati specificando che gli identificativi univoci dei casi sono contenuti nella colonna id (row.names="id"). Il codice può essere interamente riutilizzato per le vostre specifiche esigenze, ricordando che dovete semplicemente:
→ sostituire il nome del file "c:/R/InputCSV/InputCSVconid.csv" con quello del vostro file;
→ controllare il separatore di campo usato ed eventualmente correggere opportunamente il punto e virgola in sep=";”.
 
Se controllate ora il secondo esempio, trovate che nel file InputCSVsenzaid.csv i dati sono i medesimi, tranne che per il fatto che manca il campo/variabile id:
 
Calcio;Fosfato;Ossalato;Magnesio
99;81;69;61
78;65;53;43
81;66;38;54
45;23;19;16
44;18;24;19
102;83;72;66
83;68;49;45
74;71;41;57
38;19;22;14
48;14;21;12
 
Coerentemente con questo vedete che nel secondo esempio per importare di dati in R vi è una sola riga di codice così scritta:
#
mydata <- read.table("c:/R/InputCSV/InputCSVsenzaid.csv", header=TRUE, sep=";")
#
nella quale rispetto al primo esempio il solo dato evidente e significativo (a parte il diverso nome del file) è la scomparsa dell’argomento row.names="id".
 
Copiate ora il codice/testo del primo esempio dalla finestra dell’Editor di R nella Console di R per eseguirlo e verificare quanto accade effettivamente, e ripetete la cosa separatamente per il secondo esempio. In alternativa potete dalla finestra dell’Editor di R selezionare Modifica >> Esegui tutto. per eseguire entrambi gli esempi.
 
In entrambi i casi utilizzate casi i tasti Pag-sù e Pag-giù per scorrere nella finestra della Console di R quanto avete fatto/è accaduto. Come potete notare nel caso in cui (come nel secondo esempio) manchi l’identificativo della riga/caso, R provvede ad assegnarlo automaticamente, sotto forma di un numero progressivo (1 per la prima riga, 2 per la seconda riga, eccetera).
 
Come importare in R i dati di un file .xls
 
Importare i dati mediante la libreria RODBC
L’esempio che segue si basa sulla libreria RODBC ed è applicabile solamente a Windows nella versione a 32-bit. Se cercate di utilizzare lo script con Windows a 64 bit otterrete il messaggio di errore ”Errore in odbcConnectExcel("c:/R/InputXLS/InputXLS.xls"): odbcConnectExcel is only usable with 32-bit Windows”. Se volete svincolarvi da questo e altri potenziali problemi ricordate che il formato csv è il formato raccomandato per importare i dati in R.
 
→ create la cartella C:\R\InputXLS\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file InputXLS.txt e InputXLS.xls;
→ dalla Console di R con File >> Apri script... aprite nell’Editor di R il file C:\R\InputXLS\InputXLS.txt, nel quale è contenuto il codice che vogliamo utilizzare e commentare.
 
Il file InputXLS.xsl (apritelo con Excel© o OpenOffice.org Calc©) contiene due fogli, con gli stessi dati relativi alla composizione in calcio, fosfato, ossalato e magnesio di 10 calcoli delle vie urinarie che abbiamo visto per il caso di file .csv. Nel primo foglio (Conidriga) compare una colonna id con l’identificativo univoco di ciascun caso/riga, nel secondo foglio (Senzaidriga) questa colonna non compare.
 
Nell’Editor di R vedete che nel primo esempio il codice per importare in R i dati da file .xls è il seguente:
#
library(RODBC)
channel <- odbcConnectExcel("c:/R/InputXLS/InputXLS.xls")
mydata <- sqlFetch(channel, "Conidriga", rownames="id")
odbcClose(channel)
#
Osservate la prima riga di codice (library(RODBC)). Per importare i dati da un file .xls, R impiega una tecnologia denominata Open DataBase Connect, per la quale è necessara la libreria denominata RODBC. La prima volta che eseguite l’istruzione library(RODBC) dovete essere connessi a Internet, perchè dovrete installare dal CRAN da voi prescelto la libreria sul vostro PC.
 
Le successive righe di codice hanno questo significato:
→ apre la connessione ODBC per il file di cui viene specificato per intero il percorso
channel <- odbcConnectExcel("c:/R/InputXLS/InputXLS.xls")
→ legge i dati dal foglio Conidiriga e specifica che gli identificativi univoci dei casi sono contenuti nella colonna id
mydata <- sqlFetch(channel, "Conidriga", rownames="id")
→ chiude la connessione ODBC
odbcClose(channel)
 
Nel secondo esempio il codice è praticamente identico a quello del primo esempio: e il solo dato evidente e significativo (a parte il diverso nome del file) è la scomparsa dell’argomento rownames="id"
#
library(RODBC)
channel <- odbcConnectExcel("c:/R/InputXLS/InputXLS.xls")
mydata <- sqlFetch(channel, "Senzaidriga")
odbcClose(channel)
#
Copiate ora il codice/testo del primo esempio dalla finestra dell’Editor di R nella Console di R per eseguirlo e verificare quanto accade effettivamente, e ripetete la cosa separatamente per il secondo esempio. In alternativa potete dalla finestra dell’Editor di R selezionare Modifica >> Esegui tutto per eseguire entrambi gli esempi.
 
In entrambi i casi utilizzate casi i tasti Pag-sù e Pag-giù per scorrere nella finestra della Console di R quanto avete fatto/è accaduto. Come potete notare nel caso in cui (come nel secondo esempio) manchi l’identificativo della riga/caso, R provvede ad assegnarlo automaticamente, sotto forma di un numero progressivo (1 per la prima riga, 2 per la seconda riga, eccetera).
 
Importare i dati mediante la libreria xlsx
Se avete difficoltà a importare i dati da Excel© con la libreria RODBC potete provare a utilizzare la libreria xlsx. Il funzionamento del codice che segue è stato da me verificato utilizzando Windows 7 a 64 bit con file .xlsx salvati con Excel© 2010 e con file .xls salvati con Excel© 97-2003.
 
→ create la cartella C:\R\InputXLSX\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file InputXLSX.txt, Scatterplot.xlsx e Scatterplot.xls;
→ dalla Console di R con File >> Apri script... aprite nell’Editor di R il file C:\R\InputXLSX\InputXLSX.txt, nel quale è contenuto il codice che vogliamo utilizzare e commentare.
 
Installate dal CRAN sul vostro PC la libreria xlsx. Copiate quindi il codice del primo esempio dalla finestra dell’Editor di R nella Console di R per eseguirlo. Poi copiate il codice del secondo esempio dalla finestra dell’Editor di R nella Console di R per eseguire anche questo.
 
Come vedete per importare i dati direttamente da Excel© avete a disposizione con la libreria xlsx un codice che è quanto di più semplice e conciso:
#
require(xlsx)
mydata <- read.xlsx("C:/R/Scatterplot.xlsx", sheetName="Scatterplot")
#
dove gli unici argomenti richiesti dalla funzione read.xlsx sono il nome del file con il percorso completo (C:/R/Scatterplot.xlsx) e il nome del foglio (Scatterplot) all’interno del file. Se ora digitate mydata potete scorrere nella Console di R i dati avere la conferma del fatto che sono stati importati correttamente.
 
Per le molte altre cose che la libreria xlsx vi consente di fare si rimanda alla documentazione della libreria xlsx che trovate sul CRAN anche semplicemente digitando “package xlsx” nella casella di ricerca di Google. Ma ricordate ancora una volta che il formato csv è il formato raccomandato per importare i dati in R in quanto si tratta di un formato standard (fissato una volta per tutte e universalmente riconosciuto), mentre Excel© utilizza un formato proprietario che potrebbe subire modifiche senza preavviso, con conseguenze imprevedibili sui dati importati.
 
Gestione dei file con dati mancanti
 
→ create la cartella C:\R\InputNA\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file InputNA.txt e InputNA.csv;
→ dalla Console di R con File >> Apri script... aprite nell’Editor di R il file C:\R\InputNA\InputNA.txt e selezionate Modifica >> Esegui tutto.
 
Innanzitutto aprite il file InputNA.csv utilizzando il Blocco note di Windows, e vedrete che i dati (gli stessi di un esempio per iniziare) non erano sempre disponibili per tutte e cinque le classi di pazienti:
 
Normali;NCAH;CPH;CAH;AC
1.22;7.44;2.45;2.35;3.51
2.81;4.58;1.63;3.21;4.23
.........................
1.78;4.33;;;8.48
2.56;5.66;;;9.56
.................
3.02;;;;8.8
............
2.76;;;;
............
2.37;;;;
 
Ora passate alla Console di R e utilizzate casi i tasti Pag-sù e Pag-giù per scorrere nella finestra della Console di R quanto è accaduto.
 
Innanzitutto vedete che R ha sostituito automaticamente i dati mancanti con la sigla NA (che sta per Not Available).
 
Poi vedete che R ha calcolato la media nella colonna normali nella quale non vi sono dati mancanti:
# calcola la media della colonna Normali
x <- mydata[c("Normali")]
mean(x)
Normali
  2.457
 
Subito dopo R non ha calcolato la media della colonna NCAH, che ha dati mancanti:
# non calcola la media della colonna/variabile NCAH, ma causa di dati mancanti restituisce NA
x <- mydata[c("NCAH")]
mean(x)
NCAH
  NA
 
Con il parametro na.rm=TRUE che ha rimosso i dati mancanti la media è stata invece calcolata:
# calcola la media della colonna/variabile NCAH dopo avere rimosso i dati mancanti
x <- mydata[c("NCAH")]
mean(x, na.rm=TRUE)
    NCAH
4.755238
 
Infine con il comando:
newdata <- na.omit(mydata)
i dati sono stati trasferiti dall’oggetto mydata all’oggetto newdata omettendo tutti i casi con dati mancanti, e il nuovo set di dati è stato presentato semplicemente invocando il nome dell’oggetto.
 
Inserimento dati dalla Console di R
 
→ create la cartella C:\R\InputConsole\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella il file InputConsole.txt;
→ dalla Console di R con File >> Apri script... aprite nell’Editor di R il file C:\R\InputConsole\InputConsole.txt e selezionate Modifica >> Esegui tutto.
 
Ora passate alla Console di R e utilizzate casi i tasti Pag-sù e Pag-giù per scorrere nella finestra della Console di R quanto è accaduto. Nei tre esempi riportati vedete alcune sequenze di codice con le quali potete generare vettori e matrici direttamente con R. I commenti riportati nello script InputConsole.txt sono da soli sufficienti per capire gli esempi, del resto molto semplici. Potete conservare il codice e modificarlo opportunamente per le vostre future esigenze.
 
Questo impiego di R è piuttosto particolare ed ha un significato essenzialmente didattico, visto che di fatto i dati saranno sempre importati da file esterni. Ma per esempio il comando
y <- rnorm(10)
è interessante perchè consente di generare con R sequenze di deviate normali standardizzate z che possono essere utili nell’ambito di simulazioni o verifiche di set di dati.
 
Salvare la sessione di R in un file
 
→ create la cartella C:\R\OutputDati\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file OutputDati.txt e OutputDati.csv;
→ dalla Console di R con File >> Apri script... aprite nell’Editor di R il file C:\R\OutputDati\OutputDati.txt e selezionate Modifica >> Esegui tutto.
 
Dopo avere importato i dati (sono gli stessi dati visti in come importare in R i dati di un file .csv) con il codice che ormai ben conoscete, con il comando
sink("c:/R/Outputdati/OutputFile.txt", append=FALSE, split=FALSE)
l’output viene ridiretto dalla Console di R a un file, di cui sono specificati nome e percorso. Il successivo comando
mydata
scriverà i dati su questo file invece di inviarli alla Console di R, come dimostrato dal fatto che nella cartella C:\R\OutputDati\ vi comparirà il file OutputFile.txt nel quale trovate appunto i dati dell’oggetto mydata. Il successivo comando
sink()
ripristina l’output alla Console di R.
 
Salvare i grafici di R in un file
 
→ create la cartella C:\R\OutputDati\;
→ salvate (tasto destro del mouse, Salva con nome...) in questa cartella i file OutputGrafici.txt e OutputGrafici.csv;
→ dalla Console di R con File >> Apri script... aprite nell’Editor di R il file C:\R\OutputGrafici\OutputGrafici.txt e selezionate Modifica >> Esegui tutto.
 
I dati sono quelli di un esempio per iniziare. Dopo avere presentato il grafico nella finestra questo viene salvato sul disco sotto forma di file nella cartella C:\R\OutputGrafici\ con il nome File[sigla del formato].[sigla del formato] con i seguenti comandi:
 
→ genera un file bmp (Windows bitmap)
bmp("c:/R/OutputGrafici/Filebmp.bmp")
→ genera un file jpeg (Joint Photographic Experts Group)
jpeg("c:/R/OutputGrafici/Filejpeg.jpg")
→ genera un file pdf (Portable Document Format)
pdf("c:/R/OutputGrafici/Filepdf.pdf")
→ genera un file png (Portable Network Graphics)
png("c:/R/OutputGrafici/Filepng.png")
→ genera un file ps (postscript)
postscript("c:/R/OutputGrafici/Fileps.ps")
→ genera un file wmf (Windows metafile)
win.metafile("c:/R/OutputGrafici/Filewmf.wmf")
 
La struttura generale del comando per un file jpeg è la seguente:
# importare i dati
jpeg("c:/R/OutputGrafici/Filejpeg.jpg")
# inserire qui il codice che traccia il grafico
dev.off()
 
ovvero, in altre parole, dovete:
1) come prima cosa importare i dati
2) lanciare il comando jpeg("c:/R/OutputGrafici/Filejpeg.jpg")
3) scrivere o copiare in questa posizione il codice che traccia il grafico
4) lanciare il comando dev.off() per chiudere e salvare il file.
 
Controllate infine che nella cartella C:\R\OutputGrafici\ compaiano i sei file generati dallo script. Ora siete completamente autonomi nel generare i file con le immagini che potete utilizzare per le vostre presentazioni.
 
L’interfaccia grafica (GUI) di R
 
Nonostante questo corso sia basato sull’uso della Console di R, non va dimenticato che questo dispone anche di una interfaccia grafica (GUI, Graphic User Interface) che consente di utilizzare il linguaggio di R senza conoscerlo, semplicemente selezionando i comandi da userie di menù. E che consente quindi all’utente di interagire con R con una interfaccia “evoluta”, simile a quella degli altri programmi di statistica in ambiente Windows©.
 
La GUI ufficiale di R è R Commander. Per installarla dovete essere collegati a Internet, accedere ad uno dei CRAN e scaricare la libreria Rcmdr. Dato che questa libreria a sua volta si appoggia ad altre librerie, vedrete effettuare automaticamente il download e l’installazione di più pacchetti, tutti quelli tra loro concatenati e quindi necessariamente e contemporaneamente richiesti per garantire la funzionalità della libreria Rcmdr.
 
Una volta installato R Commander viene richiamato al bisogno sempre con il comando
library(Rcmdr)
digitato il quale vedrete comparire la sua interfaccia grafica dalla quale è possibile accedere alla documentazione di R Commander selezionando Aiuto >> Introduzione a R Commander. Potete anche accedere per altra documentazione al sito dell’autore John Fox (http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/). In ogni caso il materiale che trovate è più che sufficiente per imparare a utilizzare R Commander, per cui io non lo tratto ulteriormente.
 
Una cosa molto importante riportata nella documentazione. Per funzionare propriamente sotto Windows©, R Commander necessita della Single Document Interface (SDI). Per questo è necessario (ma solamente la prima volta) configurare l'avvio di R come segue:
→ fare click con il tasto destro del mouse sull'icona di R che avete sul desktop;
→ scegliere Proprietà;
→ selezionare la scheda Collegamento;
→ nel campo Destinazione dopo Rgui.exe aggiungere --sdi (aggiungere prima uno spazio quindi --sdi, in modo che la Destinazione risulti indicata come Rgui.exe --sdi).
 
Utilizzare i dati e gli script con MacOS X
 
Per i possessori di Mac utilizzare i dati e gli script qui riportati è fortunatamente molto semplice:
→ scaricare il file di dati (ad esempio Statcorr.csv) e lo script (ad esempio Statcorr.txt) desiderati, che MacOS X salva automaticamente nella cartella Download;
→ lanciare R;
→ nel menù Misc >> Cambia Cartella di Lavoro... selezionare come cartella di lavoro la cartella Download;
→ dal menù File >> Apri Documento... aprire lo script con il codice che volete eseguire (nell’esempio Statcorr.txt);
→ nella riga che legge i dati trovate scritto mydata <- read.table("c:/R/Statcorr/Statcorr.csv", header=TRUE, sep=";");
→ correggete il codice in mydata <- read.table("Statcorr.csv", header=TRUE, sep=";") eliminando c:/R/Statcorr/ ovvero, in altre parole, lasciate all’interno delle virgolette solamente il nome del file.
 
Fatta questa modifica, potete eseguire passo passo le righe di codice esattamente come indicato negli esempi!
 
Ovviamente potete anche spostare i dati e gli script dalla cartella Download in qualsiasi altra cartella: ricordatevi semplicemente che dovrete selezionare questa nuova cartella come cartella di lavoro, nella quale sono contenuti i dati, dal menù Misc >> Cambia Cartella di Lavoro...
 
 
********************************
 
 
BuiltWithNOF
[Home] [Errori cognitivi] [Epistemologia] [Teorema di Bayes] [Decisioni mediche] [Le basi biochimiche]
[Analisi tradizionali] [Analisi genetiche] [Qualità in laboratorio] [Statistica e laboratorio]
[Storia delle medicina] [Download] [Link] [Bacheca] [FAQ] [Chi sono]
Cornice_265
iNRiM
Il linguaggio delle misure
it
LabTestOnline
The_Merck_Manual
Tavole metaboliche
IEoMet
Manuale Merck di diagnosi
e terapia
Tavole metaboliche
Errori congeniti del metabolismo
R
Corso base di statistica con R
Ora anche in ebook
New01
Espressione dei risultati nel laboratorio di chimica clinica
Espressione dei risultati
PathologyOutlines
Pathology outlines
Micobatteriologia
clinica
Micobatteriologia
Inprimopianochiaro

Medicina di Laboratorio e flussi informativi al Besta di Milano

Senza dati di appropriatezza i tagli indiscriminati sono inevitabili

 Attualità in tema di eGFR:

 eGFR o creatinina nel siero?

 eGFR, indagine in Piemonte  [b]

 eGFR, riflessioni critiche  [b]

Esercizi di statistica

Teorema di Bayes e medicina basata sull’evidenza (EBM)

Informazione diagnostica e curve ROC

Gradi centigradi o gradi Celsius?

Download02

Programma di statistica Ministat (versione per Windows)

Programma di statistica Open Source R
(per Linux, Mac OS X e Windows)
OpenOffice, la suite Open Source (per Linux, Mac OS X e Windows)

Regressione lineare parametrica con quattro modelli inclusa la regressione di Deming

Calcolo degli intervalli di confidenza di sensibilità, specificità, valore predittivo, likelihood ratio

 I migliori  02  scelti per voi...

   NIST/SEMATECH   e-Handbook of Statistical Methods

Corso di Epidemiologia

FreeBooks4Doctors

Westgard QC

The Medical Biochemistry Page

Le letture
consigliate
Book-03-june

         L’articolo da non perdere...    

E ora che i test genetici sono alla portata di tutti?
Con meno di mille euro è possibile comprare un test genetico su Internet: si manda un piccolo campione di cellule e poi si aspetta la risposta.
Ma... a che cosa serve la risposta?
Un dossier di Marika De Acetis,
lo trovate sul sito www.torinoscienza.it
I migliori libri del mese
 
Leonard Mlodinow
   La passeggiata dell’ubriaco. Le leggi scientifiche del caso.
Rizzoli Editore, 2009, pp. 294. ISBN: 17034081.
I migliori libri del mese
 
  Giovanni Federspil
   Logica clinica. I principi del metodo in medicina.
McGraw-Hill, 2004, pp. 368. ISBN: 88 386 2984-6.
ebooks...
 
M. Besozzi
Errori cognitivi, probabilità e decisioni mediche.
 
Fate click sul titolo o scaricate il testo su tablet o smartphone con il codice a barre riportato qui sotto
 
ECPEDM.
ebooks...
 
Wim P. Krijnen
Applied Statistics for Bioinformatics using R
 ebooks...
 
Mauss, Berg, Rockstroh, Sarrazin, Wedemeyer, at al.
Hepatology - A clinical textbook. Quarta Edizione - 2013
ebooks...
 
Dennis A. Noe
The logic of Laboratory Medicine.