2014-05-23 2 views
1

J'ai un fichier sav avec beaucoup de variables. Ce que je voudrais faire maintenant, c'est créer des macros/routines qui détectent les propriétés de base d'une série d'ensembles d'items, en utilisant la syntaxe SPSS.Obtenir la longueur du vecteur dans SPSS

COMPUTE scale_vars_01 = v_28 TO v_240. 

Le code ci-dessus est destiné à définir une gamme d'articles que je voudrais observer plus en détail. Comment puis-je obtenir le nombre d'éléments dans le "tableau" scale_vars_01, comme un entier?

Merci pour info. (Comme vous le voyez, la syntaxe de SPSS est toujours assez étrange pour moi et je pense utiliser Python à la place, mais cela pourrait être trop lourd pour mes buts relativement simples).

Répondre

1

Une façon est d'utiliser COUNT, tels que:

COUNT Total = v_28 TO v_240 (LO THRU HI). 

Cela compte toutes les valeurs valides dans le vecteur. Cela ne fonctionnera pas si le vecteur contient des types mixtes (par exemple chaîne et numérique) ou si le vecteur a des valeurs manquantes. Une façon inefficace pour obtenir le nombre entier à l'aide DO REPEAT est ci-dessous:

DO IF $casenum = 1. 
COMPUTE Total = 0. 
DO REPEAT V = v_28 TO V240. 
    COMPUTE Total = Total + 1. 
END REPEAT. 
ELSE. 
    COMPUTE Total = LAG(Total). 
END IF. 

Cela fonctionne pour les variables de type mixte, et comptera des champs avec des valeurs manquantes. (Le DO IF travaillerait même pour COUNT, cela force une passe de données, mais pour les grands ensembles de données et de grandes listes n'évaluera pour le premier cas.)

Python est probablement la façon la plus efficace de le faire bien - et je ne voyez aucune raison de ne pas l'utiliser si vous le connaissez.

BEGIN PROGRAM. 
import spss 
beg = 'X1' 
end = 'X10' 

MyVars = [] 
for i in xrange(spss.GetVariableCount()): 
    x = spss.GetVariableName(i) 
    MyVars.append(x) 

len = MyVars.index(end) - MyVars.index(beg) + 1 
print len 
END PROGRAM. 
2

statistiques a une installation macro intégrée qui pourrait être utilisé pour définir des ensembles de variables, mais les apis Python fournissent des moyens beaucoup plus puissants pour accéder et utiliser les métadonnées. Et il existe une commande d'extension SPSSINC SELECT VARIABLES qui peut définir des macros basées sur des métadonnées variables telles que des modèles dans les noms, le niveau de mesure, le type et d'autres propriétés. Il génère une macro listant ces variables qui peuvent ensuite être utilisées dans la syntaxe standard.

Questions connexes