Sei sulla pagina 1di 17

Agnese Vardanega Universit di Teramo

www.agnesevardanega.eu/metref/r/

RExcel: breve guida alluso


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; McCullough & Heiser, 2008; Yalta, 2008), producono risultati non affidabili. RExcel integra quindi le funzioni 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 lesecuzione 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 grafici, 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 allinterno 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.
2.1.

Installazione
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 linstaller del componente aggiuntivo di Excel:


library(RExcelInstaller)

5. installare statconnDCOM, componente DCOM sviluppato da statconn per integrare R nelle applicazioni Microsoft
installstatconnDCOM()

6. installare RExcel:
installRExcel()

Alla fine della procedura guidata, dovrebbe aprirsi (in Excel) il file RExcelAddinAutoInstall.xls, a completamento dellinstallazione. Se non si dovesse visualizzare la finestra del file, potrete trovarlo nella cartella RExcel\xls in Programmi, o Program Files(x86) , e comunque dovrebbe essere reperibile nellelenco dei file recenti, in quanto si apre in automatico, anche se a volte la finestra non si vede.

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 linstallazione 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 lopzione 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 utilizzare la console di R per dare i comandi2. In pratica possibile scegliere se lavorare contemporaneamente su R ed Excel, oppure se usare esclusivamente linterfaccia di Excel. possibile impostare questa opzione (e modificarla ogni volta che serva) con il comando Set Server, 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, cliccando 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 lapplicazione 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/.

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

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 comuni 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 installare 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).

29/01/13

Agnese Vardanega Universit di Teramo

www.agnesevardanega.eu/metref/r/

4.
4.1.

Trasferimento di dati fra Excel e R


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. Nellimportare i dati in R, bisogna porre attenzione alla gestione dei dati mancanti ed in particolare linterpretazione in R delle celle vuote di Excel. Per scegliere lopzione 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 lausilio 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 tasto 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.
6.1.

Recuperare il risultato ed inserirlo in Excel


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 visbile 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) loutput 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).

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, nellesempio in Fig. 10, lesecuzione del comando 3 + 8 restituisce il valore 11 in una cella, e non loutput 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 celle, e non in testo puro, come quelle prodotte nelle finestre di R o di RCommander (Fig. 13; in questo caso, lesempio 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 loggetto inserendo nella finestra di dialogo il nome delloggetto ovvero TabEduFather 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 risultati delle formule cambiano automaticamente. Analogamente, possibile utilizzare le funzioni che RExcel aggiunge ad Excel, per incorporare alcune elaborazioni nei fogli di la voro. Non essendo questa la sede per discutere delle funzioni in Excel, e delle funzionalit di R, illustriamo questa possibilit con un semplice esempio. Tornando al foglio di lavoro Two Columns, possiamo calcolare la media della variabile y come illustrato 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 allinterno 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 linserimento 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 componente 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). Premendo 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 (automaticamente, o premendo il tasto F9). Se R non connesso, verr connesso per effettuare laggiornamento. 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: lelenco consultabile (in inglese) nella guida al programma che viene scarica insieme ai pacchetti, e che pu essere scaricata in formato pdf allindirizzo http://www.agnesevardanega.eu/metref/_media/r/r_e_gli_altri/rexcel.pdf. Vari esempi sono disponibili 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.: Murrell, 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 nellesempio 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. Lesempio illustrato 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. Nellesempio, viene creato un grafico a matrice: 1. Creare una tabella pivot dai dati contenuti nel foglio Pivot table (VarA in riga, VarB in colonna, 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 (nellesempio mypivottable) 3. scrivere le righe di comando che si vogliono eseguire con Run Code. Nellesempio:
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), 142. 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), 45704578. 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), 45794586. doi:10.1016/j.csda.2008.03.005 Come citare questo lavoro Vardanega, A. (2013). RExcel: breve guida alluso. BibTex
@unpublished{vardanega_rexcel:_2013, title = {{RExcel:} breve guida alluso}, author = {Vardanega, Agnese}, year = {2013} }

17

29/01/13