58 votes

Lire le fichier SPSS dans R

J'essaie d'apprendre R et souhaite importer un fichier SPSS que je peux ouvrir dans SPSS.

J'ai essayé d'utiliser read.spss de foreign et spss.get de Hmisc . Les deux messages d'erreur sont les mêmes.

Voici mon code:

 ## install.packages("Hmisc")
library(foreign)

## change the working directory
getwd()
setwd('C:/Documents and Settings/BTIBERT/Desktop/')

## load in the file
## ?read.spss
asq <- read.spss('ASQ2010.sav', to.data.frame=T)
 

Et l'erreur qui en résulte:

 Error in read.spss("ASQ2010.sav", to.data.frame = T) : 
  error reading system-file header
In addition: Warning message:
In read.spss("ASQ2010.sav", to.data.frame = T) :
  ASQ2010.sav: position 0: character `\000' (
 

De plus, j'ai essayé de sauvegarder le fichier SPSS en tant que fichier .sav SPSS 7 (qui utilisait auparavant SPSS 18).

 Warning messages:
1: In read.spss("ASQ2010_test.sav", to.data.frame = T) :
  ASQ2010_test.sav: Unrecognized record type 7, subtype 14 encountered in system file
2: In read.spss("ASQ2010_test.sav", to.data.frame = T) :
  ASQ2010_test.sav: Unrecognized record type 7, subtype 18 encountered in system file
 

4 votes

R

46voto

ggll Points 396

J'ai eu un problème similaire et résolu à la suite d'un indice en read.spssde l'aide. À l'aide de paquet memisc au lieu de cela, vous pouvez importer un portable SPSS fichier comme ceci:

data <- as.data.set(spss.portable.file("filename.por"))

De même, pour .sav des fichiers:

data <- as.data.set(spss.system.file('filename.sav'))

mais dans ce cas, je semble manquer certaines valeurs de chaîne, alors que le portable à l'importation fonctionne de manière transparente. La page d'aide pour spss.portable.file demandes:

L'importateur mécanisme plus souple et plus extensible que de le lire.spss et à lire.dta du paquet "étrangers", comme la plupart de l'analyse du fichier des en-têtes est fait dans l'arrêt R. Ils sont également adaptés pour charger efficacement de grands ensembles de données. Plus important encore, l'importateur objets prennent en charge les étiquettes manquantes.valeurs et descriptions fournies par ce package.

2 votes

Existe-t-il quelque chose de similaire à convert.factors = FALSE o use.value.labels = FALSE disponible pour cela ?

1 votes

"J'ai eu un problème similaire et je l'ai résolu en suivant un conseil dans l'aide de read.spss" : Quelle est l'astuce dans read.spss qui vous a aidé à résoudre le problème ?

0 votes

@Prabhu simplement dans la section See Also : Une interface différente, également basée sur la base de code PSPP, est disponible dans le paquet memisc : voir son aide pour spss.system.file .

18voto

Jaanus Points 2638

Les read.spss semble être un peu dépassé, j'ai donc utilisé le paquet appelé memisc .

Pour que cela fonctionne, procédez comme suit :

install.packages("memisc")
data <- as.data.set(spss.system.file('yourfile.sav'))

4 votes

Je suis plus familier avec les data.frames et je l'ai donc enveloppé avec data <- data.frame(as.data.set(spss.system.file('yourfile.sav')))

9voto

Jeffrey Breen Points 313

Je sais que ce post est ancien, mais j'ai également eu des problèmes pour charger un fichier Qualtrics SPSS dans R. Le code read.spss de R provient de PSPP il y a longtemps, et n'a pas été mis à jour depuis un certain temps. (Et le code de Hmisc utilise read.spss(), aussi, donc pas de chance).

La bonne nouvelle est que PSPP 0.6.1 devrait lire les fichiers sans problème, tant que vous spécifiez une "String Width" de "Short - 255 (SPSS 12.0 et antérieurs)" sur la page "Download Data" dans Qualtrics. Lisez-les dans PSPP, enregistrez une nouvelle copie et vous devriez être en mesure de le faire. C'est gênant, mais c'est gratuit.

alt text ,

0 votes

En ce qui concerne le problème d'importation de qualtrics, c'est la raison pour laquelle j'ai atterri ici. J'ai écrit les fonctions suivantes pour importer la sortie CSV de Qualtrics dans R : gist.github.com/jeromyanglim/8b3e55cb06628fee9776ae897fe987e‌​9

5voto

Jon Peck Points 101

Il semble que l'implémentation de R read.spss soit incomplète ou cassée. R2.10.1 fait mieux que R2.8.1, cependant. Il semble que R soit contrarié par les attributs personnalisés dans un fichier sav, même avec la version 2.10.1 (la dernière que j'ai). Il se peut également que R ne comprenne pas le champ d'encodage des caractères dans le fichier, et en particulier qu'il ne fonctionne pas avec les fichiers Unicode de SPSS.

Vous pouvez essayer d'ouvrir le fichier dans SPSS, de supprimer les attributs personnalisés et de réenregistrer le fichier. Vous pouvez vérifier s'il existe des attributs personnalisés à l'aide de la commande SPSS

les attributs d'affichage.

Si c'est le cas, supprimez-les (voir les commandes VARIABLE ATTRIBUTE et DATAFILE ATTRIBUTE) et réessayez.

HTH, Jon Peck

0 votes

J'ai utilisé des attributs d'affichage dans un fichier de syntaxe et je reçois un avertissement m'indiquant qu'il n'y a pas d'attributs à afficher. Certains champs de type chaîne de caractères ont une longueur de 2000, est-ce que cela devrait avoir une importance ?

1 votes

Bonjour Jon - J'ai essayé de supprimer les attributs avec la syntaxe suivante. J'en avais quelques-uns, je les ai supprimés, mais toujours pas de chance *//// Afficher les attributs personnalisés. AFFICHER LES ATTRIBUTS. *//// DELETE all pour chaque variable avec des attributs personnalisés. VARIABLE ATTRIBUTE VARIABLES=GameID TO OUTCOME_DIFF DELETE=$ODBC.Name. VARIABLE ATTRIBUTE VARIABLES=GameID TO OUTCOME_DIFF DELETE=$ODBC.Table. VARIABLE ATTRIBUTE VARIABLES=GameID TO OUTCOME_DIFF DELETE=$ODBC.Size. VARIABLE ATTRIBUTE VARIABLES=GameID TO OUTCOME_DIFF DELETE=$ODBC.Type. *//// Confirmez qu'ils ont été supprimés et enregistrez manuellement. AFFICHER LES ATTRIBUTS.

2voto

aL3xa Points 10236

Si vous avez accès à SPSS, enregistrez le fichier au format .csv, puis importez-le avec read.csv o read.table . Je ne me souviens d'aucun problème lié à l'importation de fichiers .sav. Jusqu'à présent, cela fonctionnait comme un charme, tant avec read.spss y spss.get . Je pense que spss.get ne donnera pas de résultats différents, puisqu'il dépend de foreign::read.spss

Pouvez-vous nous donner des informations sur SPSS/R/Hmisc/version étrangère ?

0 votes

2.10.1 - mise à jour de tous les paquets. Je reçois le fichier SPSS d'un autre logiciel.

0 votes

Lequel, si l'on peut savoir ? Je ne suis pas intéressé par une version particulière de SPSS "en soi", j'ai juste besoin de savoir s'il s'agit d'un fichier SPSS ou PASW... peut-être que cela a quelque chose à voir avec les changements apportés aux dernières versions... Je ne sais pas... =(

0 votes

PASW - créé à partir du logiciel d'enquête Qualtrics et modifié/enregistré dans PASW 18

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X