RExcel: breve guida all'uso

Document Sample
RExcel: breve guida all'uso Powered By Docstoc
					Agnese Vardanega
Università di Teramo                                                      www.agnesevardanega.eu/metref/r/



                                RExcel: breve guida all’uso
                                   Agnese Vardanega – gennaio 2013




1.       Introduzione
RExcel (Heiberger & Neuwirth, 2009; Neuwirth, 2013) è un componente aggiuntivo per Excel, che
consente di integrare le funzioni di R appunto in Excel. Utilizzabile in office a partire dalla versione
2003, con Excel a 32bit, e sui sistemi Windows (almeno) da XP in avanti, RExcel integra anche i
menu di RCommander (Fox, 2005), interfaccia di R.

1.1.      Cosa fa R per Excel

In Excel le funzioni di analisi dei dati, com’è noto da tempo (cfr. ad es.: Cryer et al., 2001; McCul-
lough & Heiser, 2008; Yalta, 2008), producono risultati non affidabili. RExcel integra quindi le fun-
zioni di analisi offerte da R in Excel — consentendo anche di scambiare dati e risultati — secondo
tre modalità:
     •    modalità “scratchpad” (§5 e §6): consente di scrivere le righe di comando di R in Excel;
     •    modalità “funzioni” (§7): integra le funzioni presenti in Excel con altre funzioni, specifiche
          di R;
     •    modalità “macro”: permette di utilizzare le macro per l’esecuzione di comandi in R (cfr.
          Heiberger & Neuwirth, 2009).

1.2.      Cosa fa Excel per R

La gestione di dati e tabelle, nonché lo scambio degli output con altre applicazioni (ad esempio
Word), è molto più semplice in Excel che in R; lo stesso può dirsi anche per la gran parte dei grafi-
ci, pur senza sottovalutare alcuni importanti limiti di Excel anche su questo fronte (Cryer et al.,
2001).
Integrare R ed Excel significa dunque poter gestire i dati in Excel, elaborarli utilizzando le funzioni
di R — direttamente all’interno di un foglio Excel, oppure in R, ma potendo facilmente trasferire i
risultati in Excel —, ed utilizzare facilmente gli output come si fa normalmente quando si lavora
con Excel.

1.3.      Per chi non sa usare R

Questa guida presuppone una minima conoscenza di R, necessaria del resto per poter utilizzare
RExcel. Per chi fosse interessato a conoscere i fondamentali di R rimando alla wiki disponibile sul
mio sito web (http://www.agnesevardanega.eu/metref/r/; (Vardanega A. et al, 2012), e/o ad uno dei
diversi manuali introduttivi disponibili, quali ad esempio Laboratorio di statistica con R, di Iacus e
Massarotto (2003).

                                                    1                                           29/01/13
Agnese Vardanega
Università di Teramo                                                      www.agnesevardanega.eu/metref/r/




2.       Installazione

2.1.      Se non avete già installato R

Se nel computer non è installato R, la cosa più semplice è scaricare (RAndFriends), che installa e
configura automaticamente tutto il necessario, ovvero:
     •    R
     •    rscproxy
     •    rcom



2.2.      Se avete già installato R

Se invece sul vostro computer è già installato R, è preferibile installare i singoli pacchetti necessari,
ovvero rcom, rscproxy e RExcelInstaller.
Avendo attiva una connessione ad Internet, le procedure da seguire sono:
1. avviare R come amministratori
2. scaricare ed installare i pacchetti necessari ad installare sia il necessario server di collegamento
   fra Excel e R, che e il componente aggiuntivo per R:
     install.packages("RExcelInstaller","rcom","rscproxy"
3. “chiamare” rcom e configurarlo:
     library(rcom)
     comRegisterRegistry()
4. “chiamare” l’installer del componente aggiuntivo di Excel:
     library(RExcelInstaller)
5. installare statconnDCOM, componente DCOM sviluppato da statconn per integrare R nelle ap-
   plicazioni Microsoft
     installstatconnDCOM()
6. installare RExcel:
     installRExcel()
Alla fine della procedura guidata, dovrebbe aprirsi (in Excel) il file “RExcelAddinAutoInstall.xls”,
a completamento dell’installazione. Se non si dovesse visualizzare la finestra del file, potrete trovar-
lo nella cartella RExcel\xls — in Programmi, o Program Files(x86) —, e comunque dovrebbe essere
reperibile nell’elenco dei file recenti, in quanto si apre in automatico, anche se a volte la finestra
non si vede.



                                                   2                                            29/01/13
Agnese Vardanega
Università di Teramo                                                                     www.agnesevardanega.eu/metref/r/

Per consentire il collegamento fra R ed Excel, è necessario avviare in R il pacchetto rcom. Le
versioni più recenti dei pacchetti da installare modificano il file Rprofile.site in modo che non sia
necessario farlo a mano1.

2.3.     Possibili problemi

Durante l’installazione di RExcel, potrebbe apparire un messaggio che segnala il fatto che nel file
di registro non è stato possibile trovare una installazione valida di R. RExcel, non trovando la
versione di R nel registro di Windows, non funzionerà. In questo caso, sarà necessario reinstallare
R, selezionare “Opzioni avvio / Sì (avvio custom)” e alla fine, quando apparirà la finestra di dialogo
“Selezione processi addizionali” spuntare l’opzione “Memorizza il numero di versione nel registro”.


3.      Integrazione di R in Excel
RExcel può funzionare in due modi:
• Aprendo la console di R nel momento in cui si avvii R da Excel (foreground);
• Facendo lavorare R in background: in questo secondo caso, non sarà naturalmente possibile uti-
  lizzare la console di R per dare i comandi2.
In pratica è possibile scegliere se lavorare contemporaneamente su R ed Excel, oppure se usare
esclusivamente l’interfaccia di Excel.
È possibile impostare questa opzione (e modificarla ogni volta che serva) con il comando “Set Ser-
ver”, presente nel menu di RExcel.

3.1.     Il menu principale

In Excel, viene aggiunto un nuovo menu (Figg. 1, 2, 3), dal quale è possibile avviare e chiudere R,
oppure — se è già aperta una sessione di R — connettere Excel a tale sessione.




1 Il file Rprofile.site si trova nella cartella \etc della cartella di R (a sua volta nella cartella Programmi, o Program fi -
  les). Il file dovrebbe essere protetto da scrittura, ed è dunque necessario modificare i permessi del file stesso, clic-
  cando con il tasto destro del mouse sul file, poi su “Proprietà” > Sicurezza. Selezionate il vostro account utente e
  modificate i permessi spuntando la casella “Scrittura”. A questo punto aprite il file con il Blocco note (dovrete indi -
  care l’applicazione da usare), ignorate quello che vedete scritto, ed aggiungete in fondo la riga (deve proprio essere
  una nuova riga, altrimenti non funziona)
     library(rcom)
2 Se non dovesse essere possibile avviare R in modalità “background”, potrebbe darsi che la libreria rcsproxy.dll non
  sia stata installata nella directory di R (ma in una directory personalizzata, ad es.). È sufficiente copiare la cartella del
  pacchetto rcsproxy, nella cartella del programma, ovvero /R/bin/i386/ (la cartella di R a 32 bit), oppure /R/bin/64/.

                                                              3                                                    29/01/13
Agnese Vardanega
Università di Teramo                                                    www.agnesevardanega.eu/metref/r/




                       Figura 1: RExcel e RCommander nel menu di Excel 2003




                              Figura 2: RExcel nel menu di Excel 2010




                         Figura 3: Le voci del menu di RExcel in Excel 2003



                                                 4                                            29/01/13
Agnese Vardanega
Università di Teramo                                                   www.agnesevardanega.eu/metref/r/

3.2.    RCommander

RCommander (Fox, 2005) è una interfaccia a menu di R, che consente di eseguire i comandi più co-
muni di R attraverso dei menu a tendina — senza dover utilizzare cioè le righe di comando. Oltre a
prevedere numerose funzioni di base ed avanzate, è integrabile con dei plugins aggiuntivi (da instal-
lare in R, ed avviare quando servono in RCommander).




                            Figura 4: Excel e RCommander con i suoi menu




                          Figura 5: I menu di RCommander integrati in Excel

È possibile scegliere se avviare RCommander con i suoi propri menu (“with separate menus” nel
menu di Rexcel, Fig. 4), oppure integrandone i menu in Excel (“with Excel menus”: Fig. 5).




                                                 5                                           29/01/13
Agnese Vardanega
Università di Teramo                                                     www.agnesevardanega.eu/metref/r/

4.       Trasferimento di dati fra Excel e R

4.1.      Portare una matrice dei dati da Excel a R ...

Per portare una matrice dei dati, usiamo uno dei files di esempio che possono essere installati con
queste due semplici righe di comando (è necessario chiudere Excel):
install.packages("RthroughExcelWorkbooksInstaller")
installRthroughExcel()
Il foglio utilizzato è “Two Columns”.




                                        Figura 6: Pur R Dataframe

Per importare i dati in R (come dataframe), è sufficiente selezionare le celle contenenti i dati stessi,
ed utilizzare il comando (anche da menu contestuale) Put R Dataframe. In questo caso, poiché si
tratta di due variabili senza etichette di riga, non si deve spuntare la casella “with rownames”. In
R, infatti, i rownames — nomi di riga — non sono variabili, ma, appunto, identificativi di riga.
Nell’importare i dati in R, bisogna porre attenzione alla gestione dei dati mancanti ed in particola-
re l’interpretazione in R delle celle vuote di Excel. Per scegliere l’opzione più opportuna (cliccando
sulla voce Opzioni del menu di Rexcel), bisogna tenere conto che:
     •    i valori #N/A di Excel vengono sempre tradotti come NA (missing values di R)
     •    gli errori di Excel possono essere tradotti come
             •   NA (Loose mode)
             •   NaN, Not a Number, o errore numerico, in R (Strict mode)


                                                    6                                          29/01/13
Agnese Vardanega
Università di Teramo                                                        www.agnesevardanega.eu/metref/r/

     •    le celle vuote di Excel possono essere tradotte come
              •   0 (Excel mode)
              •   NA (Loose mode e Strict mode).
In sintesi:
     •    in modalità Excel, i dati vengono trasferiti in base al modo in cui li interpreta Excel (le celle
          vuote interpretate come “0”)
     •    in modalità Strict, i dati vengono trasferiti in base al modo in cui li interpreta R (le celle
          vuote diventano “NA”, e gli errori “NaN”);
     •    in modalità Loose, celle vuote, dati mancanti ed errori vengono tutti interpretati come “NA”.

4.2.      … e viceversa

Un dataframe contenuto in R può essere trasferito in Excel con il comando Get R Dataframe.
I dati mancanti vengono trattati come nel caso illustrato sopra.


5.       Eseguire i comandi di R in Excel (scratchpad mode)
Una volta attivato RExcel e avviato anche RCommander, è possibile eseguire un comando di R in
diversi modi:
     1. Eseguendo il comando con l’ausilio dei menu di RCommander.
     2. Scrivendo il comando di R in una cella, selezionando la cella stessa, e poi cliccando su “Run
        code” (dal menu a tendina, o dal menu contestuale che appare cliccando sulla cella con il ta-
        sto destro del mouse), come in Fig. 7.




                                            Figura 7: Run Code


     3. Direttamente con il comando Get R Value (vedi §6.2).


                                                      7                                           29/01/13
Agnese Vardanega
Università di Teramo                                                    www.agnesevardanega.eu/metref/r/

6.     Recuperare il risultato ed inserirlo in Excel

6.1.    Get R Output

Quando si esegue un comando da RCommander, il risultato viene visualizzato nella finestra di
RCommander. Quando si esegue un comando con Run Code, il risultato resta nel workspace di R, e
non viene visualizzato in Excel.
Per inserire il risultato in Excel, è necessario eseguire il comando Get R Output (il comando è visbi-
le in Fig. 7), oppure — se si è utilizzato RCommander — uno dei comandi: Rcmdr Get Last Output
e Complete Output (Fig. 8).




                                      Figura 8: Menu Rcmdr Get


In pratica, nel primo caso si recupera (get) l’output da R (R Output), nel secondo lo si recupera da
RCommander (Rcmdr). I comandi eseguiti in R, infatti, non appaiono nella finestra dei risultati di
RCommander.
In questo modo, però, i risultati vengono recuperati “così come sono”, ovvero ottenendo un risultato
non diverso da quello che otterremmo semplicemente copiando quello che appare nella finestra dei
risultati di R, o di RCommander, e incollandoli in Excel (Fig. 9).




                                                  8                                           29/01/13
Agnese Vardanega
Università di Teramo                                                     www.agnesevardanega.eu/metref/r/




                                        Figura 9: Get R Output



6.2.    Get R Value

Per ottenere dei risultati organizzati in una forma che sia facilmente riutilizzabile in Excel, o come
tabelle in altri programmi, è preferibile utilizzare il comando Get value (Fig. 10).




                                        Figura 10: Get R Value


Come si vede, nell’esempio in Fig. 10, l’esecuzione del comando “3 + 8” restituisce il valore “11”
in una cella, e non l’output di R — ovvero: [1] 8.


                                                   9                                           29/01/13
Agnese Vardanega
Università di Teramo                                                        www.agnesevardanega.eu/metref/r/

Ma è possibile ottenere risultati disposti nelle celle (con intestazioni di riga e di colonna, come si
legge nella finestra di dialogo) anche per altri comandi.
La Fig. 11, ad esempio, mostra la differenza fra le statistiche riassuntive della variabile y disposte
come tabella, e come output di RCommander (e di R).




                           Figura 11: Statistiche riassuntive della variabile y


Inserendo nella finestra di dialogo un comando table(), si ottiene una tabella organizzata per cel-
le, e non in testo puro, come quelle prodotte nelle finestre di R o di RCommander (Fig. 13; in que-
sto caso, l’esempio è tratto dal foglio di lavoro “StudentData”, dopo aver caricato i dati in R).




                                                   10                                             29/01/13
Agnese Vardanega
Università di Teramo                                                     www.agnesevardanega.eu/metref/r/




                                 Figura 12: Le tabelle in R e in Excel

Il comando Get R Value può essere utilizzato per importare in Excel un oggetto (valore), creato in
R. Ad esempio, lo stesso risultato illustrato in Fig. 12 si otterrebbe creando prima un oggetto in R:
TabEduFather <- table(StudentData$EduFather)
E poi richiamando l’oggetto inserendo nella finestra di dialogo il nome dell’oggetto — ovvero Ta-
bEduFather — anziché dare il comando per intero.




                                                  11                                           29/01/13
Agnese Vardanega
Università di Teramo                                                      www.agnesevardanega.eu/metref/r/




                                  Figura 13: Le tabelle in R e in Excel


7.    Modalità “scratchpad” e modalità “funzioni”. Un esempio
Utilizzando la modalità scratchpad, si ottiene il vantaggio di un facile interscambio di dati di input
e di output fra R ed Excel. Per potersi pienamente avvantaggiare anche delle funzionalità di Excel, è
però utile avere una idea di come funzioni la modalità “funzioni”.
Com’è noto, infatti, nella celle di un foglio elettronico è possibile inserire formule ed espressioni
che producono dei risultati a partire dai dati di altre celle: quando questi valori cambiano, anche i ri-
sultati delle formule cambiano automaticamente.
Analogamente, è possibile utilizzare le funzioni che RExcel aggiunge ad Excel, per incorporare al-
cune elaborazioni nei fogli di la voro.
Non essendo questa la sede per discutere delle funzioni in Excel, e delle funzionalità di R, illustria-
mo questa possibilità con un semplice esempio.
Tornando al foglio di lavoro “Two Columns”, possiamo calcolare la media della variabile y come il-
lustrato in Fig. 13.




                                                   12                                           29/01/13
Agnese Vardanega
Università di Teramo                                                         www.agnesevardanega.eu/metref/r/




                                     Figura 14: Media della variabile y

Alternativamente, se volessimo tenere costantemente aggiornati i dati del foglio, potremmo inserire
una funzione all’interno di una cella, contenente una funzione che calcoli la media della colonna,
anche se i valori contenuti nella colonna stessa venissero cambiati.
In questo caso, peraltro, non è necessario caricare i dati in R.




                  Figura 15: Le funzioni di RExcel nella finestra di “Inserimento funzioni”

Per accedere al menu “Inserisci funzione” di R, bisogna cliccare sul simbolo fx accanto alla barra per
l’inserimento dei dati (Fig. 15), dopo aver selezionato la cella nella quale si inserirà il risultato.

                                                     13                                            29/01/13
Agnese Vardanega
Università di Teramo                                                        www.agnesevardanega.eu/metref/r/

Selezionando la categoria “RExcel” compaiono tutte le funzioni messe a disposizione dal compo-
nente aggiuntivo.
Per calcolare la media, possiamo utilizzare la funzione “RApply”, come mostrato in Fig. 16, ovvero
indicando la funzione di R da applicare (“mean”) e le celle che contengono i dati (B2:B13). Pre-
mendo invio nella cella apparirà il risultato.




                         Figura 16: Calcolo della media con la funzione “RApply”

Quando i dati della variabile y cambiano, il risultato della funzione viene aggiornato (automatica-
mente, o premendo il tasto F9). Se R non è connesso, verrà connesso per effettuare l’aggiornamen-
to.
Con RApply possono naturalmente essere utilizzate molte delle funzioni di R, ed è chiaro che, per
poterle utilizzare, bisogna conoscerne il nome e gli argomenti.
Inoltre, come si vede anche in Fig. 15, RExcel mette a disposizione numerose funzioni per usare R
in Excel: l’elenco è consultabile (in inglese) nella guida al programma che viene scarica insieme ai
pacchetti,      e    che     può      essere     scaricata     in    formato    pdf     all’indirizzo
http://www.agnesevardanega.eu/metref/_media/r/r_e_gli_altri/rexcel.pdf. Vari esempi sono disponi-
bili nel file demo “RdemoRecalc”.


8.    Gestione dei grafici
Se certamente la gestione dei grafici in Excel è molto più semplice, R offre un maggiore ventaglio
di possibilità in termini di tipi di grafici disponibili e di personalizzazione possibili (cfr. ad es.: Mur-
rell, 2006; Maindonald, 2008; Wickham, 2009).


                                                    14                                            29/01/13
Agnese Vardanega
Università di Teramo                                                        www.agnesevardanega.eu/metref/r/




                              Figura 17: il dispositivo grafico di R in Excel



Per creare dei grafici in R attraverso RExcel, è possibile utilizzare il menu “Grafici” di
RCommander, oppure usare le linee di comando, come nell’esempio della Fig. 17: in questo caso, la
matrice “TwoColumns” è stata trasferita in R, ed è poi stato eseguito il comando
plot(TWoColumns)
con il comando Run Code (cfr. §5).
Sia che si utilizzi RCommander, che si utilizzi Run Code, si aprirà il dispositivo grafico (graphic
device) di R, una finestra separata, come si può vedere in Fig. 17, che consente di operare alcune
modifiche ai grafici, ed esportarli in diversi altri formati.
Per inserire definitivamente il grafico nel foglio Excel, si userà il comando Insert Current R Plot,
che appare nel menu contestuale quando nel dispositivo grafico sia presente un grafico.
Per inserire il grafico in altri programmi, è forse preferibile esportarlo nel formato più consono.




                                                    15                                            29/01/13
Agnese Vardanega
Università di Teramo                                                        www.agnesevardanega.eu/metref/r/




9.     Le tabelle pivot
Infine, è possibile importare in R anche le tabelle pivot (Pivot Tables) create in Excel. L’esempio il-
lustrato in Fig. 18, è quello del foglio demo “RdemoDev”.




                                         Figura 18: Tabelle Pivot

Le tabelle pivot vengono importate in R come structable, e non come matrici dei dati (dataframe).
Nondimeno, è possibile effettuare diverse elaborazioni sulle tabelle stesse. Nell’esempio, viene
creato un grafico a matrice:
     1. Creare una tabella pivot dai dati contenuti nel foglio “Pivot table” (VarA in riga, VarB in co-
        lonna, e VarA nel campo dati). Poi cliccare in una cella della tabella pivot con il tasto destro
        del mouse;
     2. Selezionare dal menu contestuale il comando Put pivottable e dare un nome alla tabella
        (nell’esempio è mypivottable)
     3. scrivere le righe di comando che si vogliono eseguire con Run Code. Nell’esempio:
         library(vcd)
         mosaic(mypivottable)
        creano il grafico a mosaico (utilizzando la libreria “vcd”).
        Se si fosse scritto ed eseguito (con Run Code o con Get R Value):
         chisq.test(mypivottable)
        Si sarebbe ottenuto il risultato del test del chi quadrato per la tabella.

                                                    16                                            29/01/13
Agnese Vardanega
Università di Teramo                                                 www.agnesevardanega.eu/metref/r/

Riferimenti bibliografici
Cryer, J. D., Should, G. G., Axes, L., & Marks, T. (2001). Problems with using Microsoft Excel for
        statistics. In Joint Statistical Meetings.
Fox, J. (2005). The R Commander: A Basic Statistics Graphical User Interface to R. Journal of
        Statistical Software, 14(9), 1–42.
Heiberger, R. M., & Neuwirth, E. (2009). R Through Excel: A Spreadsheet Interface for Statistics,
        Data Analysis, and Graphics. Springer.
Iacus, S. M., & Masarotto, G. (2003). Laboratorio di statistica con R. Con CD-ROM. McGraw-Hill
        Companies.
Maindonald, J. (2008). Lattice and Other Graphics in R. R documentation.
McCullough, B. D., & Heiser, D. A. (2008). On the accuracy of statistical procedures in Microsoft
        Excel 2007. Computational Statistics & Data Analysis, 52(10), 4570–4578.
        doi:10.1016/j.csda.2008.03.004
Murrell, P. (2006). R Graphics. Chapman & Hall/CRC.
Neuwirth, E. (2013). RExcelInstaller: Integration of R and Excel, (use R in Excel, read/write XLS
        files). Retrieved from http://CRAN.R-project.org/package=RExcelInstaller
Vardanega A. et al. (2012). R per la ricerca sociale. Wiki. Retrieved from
        http://www.agnesevardanega.eu/metref/r/
Wickham, H. (2009). ggplot2. Elegant Graphics for Data Analysis. Springer.
Yalta, A. T. (2008). The accuracy of statistical distributions in Microsoft® Excel 2007.
        Computational Statistics & Data Analysis, 52(10), 4579–4586.
        doi:10.1016/j.csda.2008.03.005


                                   Come citare questo lavoro

Vardanega, A. (2013). RExcel: breve guida all’uso.

BibTex
@unpublished{vardanega_rexcel:_2013,
title = {{RExcel:} breve guida all’uso},
author = {Vardanega, Agnese},
year = {2013}
}




                                                17                                         29/01/13

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:12
posted:2/3/2013
language:Unknown
pages:17
Description: RExcel (Heiberger & Neuwirth, 2009; Neuwirth, 2013) è un componente aggiuntivo per Excel, che consente di integrare le funzioni di R in Excel. Utilizzabile in Office a partire dalla versione 2003, con Excel a 32bit, e sui sistemi Windows (almeno) da XP in avanti, RExcel integra anche i menu di RCommander (Fox, 2005).