2010-10-26 12 views
1

Je suis actuellement occupé avec bulding un document synthax dans SPSS et j'ai une colonne de chaînes de caractères variables qui comprend environ 40 lignes (ce sera beaucoup plus dans la semaine à venir). SPSS a une belle façon de le créer (peut être vu ici :) http://vault.hanover.edu/~altermattw/methods/stats/reliable/reliability-1.html) mais cela peut être fait par une variable à la fois qu'il est possible d'automatiser.notepad ++ expressions régulières pour convertir des lignes pour l'éditeur de syntaxe SPSS

Je suis un débutant (je ne me dérangerait pas si vous me appeler n00b) à la recherche & remplacer par des expressions reqular dans notepad ++, mais je peux utiliser la fonction de recherche étendue en tant qu'utilisateur de base: P

Le les données contiennent des scores échelle de Likert (de 1-7) et je voudrais l'inverser pour faire quelques tests.

Par exemple: mon nom de variable sur la ligne est q_4_SQ001 et l'sline dans l'éditeur de synthaxe est q_4_SQ001=COMPUTE q_4_SQ001r=8-q_4_SQ001.

Ma question à ce jour est donc:

Comment puis-je convertir une ligne contenant un nom unique variable en c'est la formule de revers?

Donc dans ce cas, comment puis-je remplacer les lignes suivantes:

q_4_SQ001 
q_4_SQ002 
q_4_SQ003 
q_4_SQ004 

dans la synthaxe données sous:

COMPUTE q_4_SQ001r=8-q_4_SQ001. 
COMPUTE q_4_SQ002r=8-q_4_SQ002. 
COMPUTE q_4_SQ003r=8-q_4_SQ003. 
COMPUTE q_4_SQ004r=8-q_4_SQ004. 

S'il vous plaît Remarque Les points à la fin de chaque ligne, je l'ai fait manuellement pour vous donner une idée de ce que je voudrais réaliser. Mon jeu de données a différentes questions et différentes chaînes de variables, donc je voudrais rendre ma vie un peu plus facile maintenant: P

J'ai également essayé d'enregistrer et d'exécuter une macro comme indiqué ici (http://stackoverflow.com/ questions/2467875/notepad-replace-all-regular-expression-start-of-the-line-and-end-of-the-line) mais cela prend du temps car je dois faire chaque ligne manuellement et nettoyer avec une recherche étendue à la fin.

Ne serait-il pas plus facile de convertir chaque ligne?

Merci un bouquet à l'avance :)

Répondre

1

drôle, Notepad ++ fonctionne sous Wine, comme je viens de découvrir;)

Nouveau fichier, inséré:

q_4_SQ001 
q_4_SQ002 
q_4_SQ003 
q_4_SQ004 

Sélectionner tout (CTRL+A) , remplacez (CTRL+R).

Cochez Regular Expr, collez ^(.*)$ dans le bit "find" (première zone de texte) et COMPUTE \1r=8-\1. dans le bit "replace" (deuxième zone de texte). Appuyez sur le bouton Find, puis sur le bouton Replace Rest. Le parenthèse () permet de mémoriser le motif, chaque série de parenthèses étant disponible pour le motif de remplacement via \1, \2, etc.

Après le remplacer, je me suis:

COMPUTE q_4_SQ001r=8-q_4_SQ001. 
COMPUTE q_4_SQ002r=8-q_4_SQ002. 
COMPUTE q_4_SQ003r=8-q_4_SQ003. 
COMPUTE q_4_SQ004r=8-q_4_SQ004. 

Ce que je suppose est ce que vous vouliez. Prendre plaisir.

+0

Cela m'a aidé :) Merci beaucoup! Je ne peux pas voter UP en raison du manque de points UP que j'ai. – lightblack