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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top