funzione odbcConnectExcel dalla confezione RODBC per R non trovato su Ubuntu
Domanda
L'installazione del pacchetto RODBC su Ubuntu è un po 'un kludge. Per prima cosa ho imparato a installare i seguenti:
$ sudo apt-get install r-cran-rodbc
Questo non era abbastanza buono come il pacchetto è stato ancora alla ricerca di file di intestazione. Ho risolto questo problema:
$ sudo apt-get install unixodbc-dev
Bene, RODBC installato correttamente sulla macchina Ubuntu. Ma quando provo a eseguire il seguente script:
## import excel file from Dropbox
require("RODBC")
channel <- odbcConnectExcel("~/Dropbox/DATA/SAMPLE/petro.xls")
petro <- sqlFetch (channel, "weekly")
odbcClose(channel)
str(petro)
head(petro)
ottengo un errore gettato quella funzione odbcConnectExcel non trovata. Ho controllato il caso di ogni lettera, facendo attenzione che non è stato un semplice errore di battitura. No. Poi ho eseguito questo stesso script in un'installazione di Windows R (file percorso diverso, ovviamente) e le opere di script.
Qualche idea del motivo per cui l'installazione di Ubuntu R non riesce a trovare la funzione odbcConnectExcel e come posso ottenere questo al lavoro?
Soluzione
Questa funzionalità è disponibile in cui Excel è disponibile. In altre parole:. Non su Ubuntu
Per riferimento, dal R Data Import / Export (con il mio evidenziazione):
4.3.2 Pacchetto RODBC
Il pacchetto RODBC su CRAN fornisce un Interfaccia a fonti di database supportare un'interfaccia ODBC. Questo è largamente diffusa, e permette la R stesso codice di accesso diverso sistemi di database. RODBC gira su Unix / Linux, Windows e Mac OS X, e quasi tutti i sistemi di database forniscono il supporto per ODBC. Abbiamo testato Microsoft SQL Server, Access, MySQL, PostgreSQL, Oracle e IBM DB2 su Windows e MySQL, Oracle, PostgreSQL e SQLite su Linux.
ODBC è un sistema client-server, e noi hanno felicemente connesso ad un DBMS in esecuzione su un server UNIX da un client Windows, e viceversa.
Supporto On ODBC Windows è normalmente versioni installate e attuali sono Disponibile da http://www.microsoft.com/data/odbc/ come parte di MDAC. Su Unix / Linux si vuole bisogno di un manager driver ODBC come unixODBC ( http://www.unixODBC.org ) o iOBDC ( http://www.iODBC.org : questo è pre-installato in Mac OS X) e un driver installato per il database sistema.
di Windows fornisce i driver non solo per DBMS ma anche per Excel (.xls) fogli di calcolo, file dBASE (dbf) e anche i file di testo. (Il nome applicazioni non hanno bisogno di essere installato. Quali formati di file sono supportato dipende dalle versioni dei driver.) Ci sono versioni per Excel 2007 e Access 2007 (vai al http://download.microsoft.com , e cercare
Office ODBC
, che sarà portare a AccessDatabaseEngine.exe), il `2007 driver Office System'.
Altri suggerimenti
Ho trovato RODBC per essere un vero e proprio dolore nel Ubuntu. Forse è perché non so gli incantesimi giusti, ma sono passato a RJDBC e hanno avuto molta più fortuna con esso. Come discusso qui .
Come Dirk dice, che sogliono risolvere il problema di Excel. Per la scrittura di Excel Ho avuto molto buona fortuna con il pacchetto WriteXLS. In Ubuntu ho trovato abbastanza facile da impostare. Ho avuto Perl e molti dei pacchetti già installati e ha dovuto semplicemente installare Text :: CSV_XS che ho installato con il gestore di pacchetti GUI. La ragione per cui mi piace WriteXLS è la capacità di frame di dati scrittura a diversi fogli nel file Excel. E ora che guardo la tua domanda vedo che si desidera leggere di Excel non li Scrivere i file. Inferno. WriteXLS non lo fa. Stick con GData, come Dirk ha detto nei suoi commenti:
GData su CRAN e si sta andando a voler la funzione read.xls ():
read.xls("//path//to/excelfile.xls", sheet = 1, verbose=FALSE, pattern, ...,
method=c("csv","tsv","tab"), perl="perl")
potrebbe essere necessario eseguire installXLSXsupport
che installa i moduli Perl necessari.
read.xls si aspettano numeri di foglio, non i nomi. Il parametro del metodo è semplicemente il formato di file intermedio. Se i dati non ha schede allora non utilizzare la scheda come formato intermedio. E allo stesso modo per le virgole e csv.