top of page
  • תמונת הסופר/תליאת לב-שלם

הוספת תוספת לשמות של משתנים רבים

לעתים אנחנו רוצים להוסיף לשמות כל המשתנים בקובץ תוספת מסויימת.

לדוגמא- יש לי שני קבצי נתונים שנאספו במועדים שונים, כאשר כל קובץ הוא של מדידה מסויימת, לצורך הענין נקרא להם מדידה 1 ומדידה 2. הקבצים הם זהים ועל כן ניתנו להם שמות משתנים זהים.

כעת אני רוצה ליצור קובץ אחד שיכלול את שתי המדידות , שיהיה בנוי כך שכל נבדק יקבל שורה אחת לנתוניו במדידה 1 ובמדידה 2.

לשם כך אצטרך שיהיו למשתנים שמות שונים, כאשר רצוי שהשמות ישמור על המשמעות הקודמת שלהם.

נניח שבקובץ שמות המשתנים הם:

Q1 Q2 Q3 .. ואני רוצה לשנות אותם ל Q1_pre, Q2_pre, Q3_pre

כלומר- אני רוצה להוסיף תוספת כלשהי לשם המשתנה, לאורך מספר רב של משתנים.

ניתן לעשות את זה ידנית כמובן, על ידי כניסה לכל שם משתנה- משימה ארוכה, מייגעת מאוד (במיוחד במקרה שבן יש עשרות ואף מאות של שמות משתנים שאנו רוצים לשנות) ומועדת לטעויות אנוש.

אפשרות נוספת, בה עשיתי שימוש עד לא מזמן, היא לבצע את התיקון כשהנתונים עוד באקסל (או אף להמיר את הקובץ במיוחד לאקסל לצורך המשימה)- מכיוון שבאקסל החלפת או הוספת שמות היא קלה באופן משמעותי.

אבל לעיתים קרובות אנחנו רוצים לעשות את זה באמצעות SPSS.

לאחרונה מצאתי פקודת סינטקס אשר מאפשרת הוספת סיומת לשמות המשתנים באופן קל ופשוט ב SPSS מבלי להצטרך לעבוד על אקסל או לבצע תיקונים ידניים.

העתיקו את הסינטקס הבא כלשנו- אין צורך לערוך שינוי כלשהו.

המקומות בהם יש לעשות שינוי מסומנים בצהוב- בהמשך לדוגמא שהבאתי קודם, הכנסתי את הנתונים המאפשרים להוסיף, כמו בדוגמה שתיארתי כאן, את התוספת _pre למשתנים Q1 Q2 Q3

אני מניחה (עדיין לא בדקתי) שנבירה באפשרויות הפקודות השונות, תעלה כי ניתן גם להוסיף באותו האופן התחלות לשמות ולא רק סיומות, החלפה של תו מסויים בשם בתו אחר, ועוד.


מצורף הסינטקס בצורה קלה להעתקה:

define !rename2 (vlist = !charend('/')

/suffix=!cmdend )

!do !vname !in (!vlist)

!let !nname = !concat(!vname, !suffix)

rename variables (!vname = !nname).

!doend

!enddefine.

!rename2 vlist = Q1 Q2 Q3

/suffix = _pre .

0 תגובות
bottom of page