Domanda

Versione R: 2.12.2 / OS: Windows XP

I dati che ho bisogno di query e manipolare è memorizzato in un file di SPSS .sav (dimensione ~ 112MB) e ho una conoscenza di base della sintassi SPSS. Sono molto più comodo con R (e in generale preferisco per la manipolazione dei dati e analisi), quindi ho salvato il file SPSS come un file delimitato da tabulazioni (dimensione ~ 85MB) e tentato di eseguire una query utilizzando la funzionalità dal pacchetto RODBC.

Con il comando 'Origine dati (ODBC)' applicazione all'interno del gruppo Strumenti di amministrazione nel Pannello di controllo di Windows, ho configurato un database (cartella di Windows), che dispone di tavoli (file delimitati da tabulazioni) con il driver del testo di Microsoft.

La tabella corrente di interesse ha un campo 'Data' (chiamato 'DateTime') in cui le date vengono formattate '% Y /% m /% d'. Quando ho provato prima di interrogare il database con le condizioni su questo campo, mi è stato restituito un set di risultati con zero osservazioni. Così, ho cambiato 'DateTime' al tipo di dati 'carattere' e ho cercato di nuovo la mia domanda (inutilmente).

Sono in grado di interrogare il database con successo, cioè.

sqlQuery(channel = cn, query = "SELECT * FROM large_table.txt", as.is = TRUE, stringsAsFactors = FALSE, max = 20)

restituisce i risultati. Le seguenti query restituiscono set di risultati con zero osservazioni (ho verificato che ci sia almeno un record con il valore '2011/04/01' nel suo campo 'DateTime').

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = {d '2011-04-01'}", as.is = TRUE, stringsAsFactors = FALSE)

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = '2011/04/01'", as.is = TRUE, stringsAsFactors = FALSE)

Qualcuno può dirmi il motivo per cui il set di risultati non ha osservazioni?

Qualche suggerimento per migliorare la mia connessione al database o la query sono molto apprezzate. Io preferisco usare il pacchetto RODBC al posto di un altro pacchetto di database-query, ma sono disposto a provare qualcosa di nuovo, se necessario.

È stato utile?

Soluzione

userei il pacchetto 'memisc' per questo. istituire spss.system.file () importatori per le 3 file SPSS, sottoinsieme utilizzando la versione memisc a carico a R solo le variabili che sono necessari, tra cui la gestione livelli mancanti definiti dall'utente.

Ci sono alcune stranezze vicino come file SPSS sono impostati - è abbastanza frequente per file SPSS con variabili numerici per avere user-missings impostati, che possono avere bisogno di smistamento al termine R in una scalatura intervallo con AN appropriate.

Altri suggerimenti

Si può risparmiare un sacco di problemi con la lettura del file di SPSS direttamente in R.

library(foreign)
dat <- read.spss("filename.sav", to.data.frame=TRUE)

Questo restituirà un data.frame che è possibile analizzare utilizzando tutti i normali strumenti di R.

Come beneficio collaterale, si avrà anche il testo questionario gli attributi del vostro data.frame.

Vedere ?read.spss per maggiori dettagli.

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