Sono molte le ricerche per importare dati in R da Excel che da google portano al mio blog, così ho pensato di scrivere delle indicazioni specifiche.
Innanzitutto, come più ampiamente spiegato in questo mio vecchio post, io consiglio l'utilizzo della libreria Rcmdr che permette l'importazione stile "software commerciali" direttamente da un file di Excel, Stata, Minitab, Access, ecc... .
Ma se proprio non si vuol dar retta a questo mio consiglio :-), la procedura è riportata di seguito.
Immaginando di essere in Italia in cui il separatore decimale utilizzato è la virgola, la prima cosa da fare è salvare il foglio Excel in formato testo delimitato da tabulazione. Bisogna stare attenti a non salvare in txt utilizzando il separatore delle migliaia per le variabili (colonne di Excel) aventi Numero come Formato Celle (quindi, in Excel, per le celle con formato Numero: Formato Celle > Numero e togli il segno di spunta in corrispondenza di Usa separatore delle migliaia (,) ). Sto inoltre immaginando, come penso accada in genere, che la prima riga della tabella Excel indichi il nome delle variabili.
A questo punto il codice in R è semplicemente:
x<-read.delim2("C:/miaCartella/mioFile.txt") .
Notate che nell'indicazione del percorso del file si debba usare "/" invece di "\". A questo punto x sarà il data.frame in R corrispondente alla vostra tabella di Excel.
Infine, faccio notare come il seguente comando:
x<-read.table(file="C:/miaCartella/mioFile.txt", header=TRUE, sep="\t", dec=",")
sia perfettamente equivalente al precedente (l'help in linea può aiutare a charirsi le idee).
12 commenti:
Io solitamente utilizzo un altro metodo, stabilendo una connessione col foglio Excel tramite la libreria RODBC. Immaginiamo di dover leggere il foglio 'Foglio1' del file 'dati.xls':
library(RODBC)
channel <- odbcConnectExcel("dati.xls")
dati <- sqlFetch(channel,"Foglio1")
odbcClose(channel)
... comunque, utilissimo post!
Grazie, mi hai risolto un problema!
e se dovessi esportare un dataset su un foglio di calcolo excel o semplicemente in formato .txt come posso fare?
e se dovessi esportare un dataset su fogli di calcolo Excel o in file txt, che procedure devo seguire?
>?write.table
Sto cercando di importare due serie da Excel a R. Quando tento di fare il grafico con plot(x,y) mi da sempre lo stesso messaggio:
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
E con la funzione dim sembrerebbero due vettori con lo stesso numero di righe. Per importarli uso questo codice:
x <- read.table(file="/Users/DAVID/Desktop/TESI DI LAUREA/Date01.csv", header=0, dec=",")
y <- read.table(file="/Users/DAVID/Desktop/TESI DI LAUREA/Serie01.csv", header=0, dec=",")
plot(x,y)
Qualcuno sa darmi una mano? Grazie in anticipo!
Dovresti cercare nell'arichivio della mailing list di R.
Cerca qui:
http://www.googlesyndicatedsearch.com/u/newcastlemaths?hl=it&ie=ISO-8859-1&q=Error+in+xy.coords(x%2C+y%2C+xlabel%2C+ylabel%2C+log)+%3A+%27x%27+and+%27y%27+lengths+differ&btnG=Cerca
Grazie mille!:-) Non pensavo fosse cosi laborioso importare dei dati accipicchia.
CIAO A TUTTI, HO VISTO CHE PARLATE DI R. ANCHE IO NON RIESCO A IMPORTARE I DATI. HO UN FILE EXCEL, HO PROVATO A TRASFORMARLO IN CSV MA MI INSERISCE TUTTI I DATI NELLA PRIMA COLONNA SEPARANDOLI DA VIRGOLE. VORREI PRIMA METTERE A POSTO QUESTO FILE CSV E POI IMPORTARE. NEL MIO FILE CI SONO ETICHETTE DI COSTI NELLA RIGA 1 E ETICHETTE DI SETTORI NELLA COLONNA 1. MI SAPETE AIUTARE? GRAZIE, ROBI
Ma chi se l'è inventato sto programma maledetto!!!!!!!
Buonasera, riesumo questo vecchio post per fare una domanda.
Devo fare un analisi di un grosso dataset con R, nel file ho 5 colonne Tempo, value1, value2, value3, evento.
Mi servirebbe prendere tutte le righe relative ai vari eventi (e1,e2,e3...) e fare dei calcoli sui 3 campi value.
Qualcuno ha qualche suggerimento?
grazie mille!
Ciao presumo tu abbia i dati in excel, visto che scrivi in questo post.
In tal caso dovrebbe essere molto semplice importare i dati: salva il file excel in csv , quindi importa in base a quanto sopra descritto.
Sebbene sia possibile importare da xls anche con procedimenti differenti, il passaggio per un csv ti garantisce un maggiore controllo di possibili (e apparentemente incomprensibili ) messaggi di errore.
Spero di esserti stato utile
Posta un commento