آموزش استاتا- فصل دوم:
تولید فایل های داده
مانند سایر برنامههای تحلیل داده، Stata برای تحلیل دادهها نیاز به خواندن یک فایل داده دارد. بنابراین، ضروری است که یک فایل داده ایجاد شود یا آن را از برنامههای دیگر وارد Stata کنیم. فایلهای داده میتوانند توسط Stata تولید شوند، اما این کار به طور رایج انجام نمیشود. محققان معمولاً فایلهای دادهای که در برنامههای دیگر ایجاد شدهاند را به فرمت Stata تبدیل یا وارد آن میکنند. فایلهای دادهای که در برنامههای دیگر ایجاد شدهاند، به راحتی میتوانند به فرمت Stata برای تحلیل تبدیل شوند. در این فصل، ما نحوه تولید یک فایل داده در Stata را بررسی خواهیم کرد.
۲.۱ تولید فایلهای داده
۲.۱.۱ تولید فایل داده با تایپ دادهها در ویرایشگر داده
برای تولید یک فایل داده، اولین و اصلیترین قدم تصمیمگیری در مورد نام هر یک از متغیرهای موجود در پرسشنامه یا برگه ثبت است. برای نامگذاری یک متغیر، باید از قوانین خاصی پیروی کنیم. این قوانین عبارتند از:
نامهای متغیر باید منحصر به فرد باشند (یعنی همه متغیرها باید نامهای متفاوتی داشته باشند).
نام یک متغیر باید بین ۱ تا ۳۲ کاراکتر باشد. اما سعی کنید آن را کوتاه نگه دارید.
نامهای متغیر باید با یک حرف (کوچک یا بزرگ) یا یک زیرخط شروع شوند. نامهای متغیر نمیتوانند با یک عدد شروع شوند. اگرچه میتوان از زیرخط برای شروع نام متغیر استفاده کرد، اما این کار به شدت توصیه نمیشود زیرا چنین نامهای متغیری در Stata برای نشان دادن متغیرهای موقتی استفاده میشوند.
متغیرها نمیتوانند شامل نقطه (.)، فضا (کاراکتر خالی فاصله) یا نمادهایی مانند ؟، *، µ، λ، ~، !، -، @ و # باشند.
Stata حساس به حروف بزرگ و کوچک است. برای مثال، "Gender"، "gender" و "GENDER" در Stata بهعنوان یک متغیر در نظر گرفته نمیشوند. هنگام تحلیل، باید نامهای متغیرها را به درستی تایپ کنید تا دستورها اجرا شوند. ما توصیه میکنیم از نامهای متغیر با تمام حروف کوچک استفاده کنید (مثلاً gender).
پس از تصمیمگیری در مورد نامهای متغیرها، گام بعدی تولید یک فایل داده است. در Stata، برای تولید یک فایل داده، ابتدا دادهها را وارد میکنیم سپس نامهای متغیر را وارد میکنیم. فرض کنید که دادهها را با استفاده از یک پرسشنامه پیشکد شده جمعآوری کردهایم (کدها در پرانتز نشان داده شدهاند) با متغیرهای زیر:
متغیرهای طبقهبندیشده:
- جنسیت (m= مرد؛ f= زن)
- مذهب (1= اسلام/مسلمان؛ 2= هندو؛ 3= دیگر)
- شغل (1= کسبوکار؛ 2= شغل دولتی؛ 3= شغل خصوصی؛ 4= دیگر)
- وضعیت تأهل (1= متاهل؛ 2= مجرد؛ 3= دیگر)
- دیابت (1= بله؛ 2= خیر)
متغیرهای کمّی (عدد عددی):
- شماره شناسایی
- سن پاسخدهنده
- درآمد ماهانه خانواده
- فشار خون سیستولیک (BP)
- فشار خون دیاستولیک (BP)
فرض کنید که تصمیم گرفتهایم از "age" بهعنوان نام متغیر برای سن، "sex" برای جنسیت، و "religion" برای مذهب استفاده کنیم. به جای age، sex و religion، میتوانید از هر نام دیگری برای متغیرها استفاده کنید، مانند v1، v2، و v3. همیشه راحت است که یک کتابچه کد در MS Word یا MS Excel تهیه کنید که در آن نامهای متغیرهای Stata، نامهای واقعی متغیرها (برچسبهای متغیر) و کدهای متغیرها (برچسبهای مقادیر) ثبت شود (جدول ۲.۱). کتابچه کد هنگام تحلیل دادهها مفید است.
استفاده از متغیرهای عددی به جای متغیرهای رشتهای (کاراکتری) برای یک فایل داده راحتتر است. متغیرهای عددی کدهای عددی دارند (مثلاً ۱= مرد؛ ۲= زن). متغیرهای رشتهای ممکن است کدگذاری شده یا نشده باشند. اگر یک متغیر رشتهای کدگذاری شده باشد، با حروف کدگذاری میشود (مثلاً m= مرد؛ f= زن). هنگامی که یک متغیر رشتهای کدگذاری نشده باشد، دادهها مستقیماً در فایل داده وارد میشوند. بهعنوان مثال، دادههای جنسیت (مرد/زن)، مذهب (اسلام/هندو/دیگر) و شغل (کسبوکار/دارنده شغل/دیگر) ممکن است مستقیماً در فایل داده وارد شوند. توجه داشته باشید که Stata اجازه نمیدهد برای متغیرهای رشتهای کدگذاریشده (مثلاً m= مرد؛ f= زن) برچسب مقدار اعمال شود.
جدول ۲.۲ برخی از دادهها (بهعنوان مثال) را نشان میدهد که با استفاده از پرسشنامه (جدول ۲.۱) جمعآوری شدهاند. ما از این دادهها برای تولید یک فایل داده در Stata استفاده خواهیم کرد.
جدول 2.1 کتاب کدهای پرسشنامه
نام متغیر در Stata | نام واقعی متغیر / برچسب متغیر | کد متغیر / برچسبهای مقدار |
idno | شماره شناسایی | مقدار واقعی |
age | سن به سال | مقدار واقعی |
sex | جنسیت* | m= مرد، f= زن |
religion | مذهب | 1= اسلام/مسلمان، 2= هندو، 3= دیگر |
occu | شغل | 1= کسبوکار، 2= شغل دولتی، 3= شغل خصوصی، 4= دیگر |
income | درآمد ماهانه خانواده به تاکا | مقدار واقعی |
marital | وضعیت تأهل | 1= متاهل، 2= مجرد، 3= دیگر |
diabetes | دیابت شیرین | 1= بله، 2= خیر |
sbp | فشار خون سیستولیک به میلیمتر جیوه | مقدار واقعی |
dbp | فشار خون دیاستولیک به میلیمتر جیوه | مقدار واقعی |
جدول 2.2 داده های جمع آوری شده از افراد مورد مطالعه (فقط بخشی نشان داده شده است)
idno | age | sex | religion | occu | income | marital |
1 | 26 | m | 1 | 2 | 25000 | 1 |
2 | 28 | f | 2 | 2 | 35000 | 1 |
3 | 29 | f | 1 | 1 | 60000 | 1 |
4 | 34 | m | 1 | 3 | 20000 | 2 |
این دادهها شامل متغیرهای شناسه (idno)، سن (age)، جنسیت (sex)، مذهب (religion)، شغل (occu)، درآمد (income) و وضعیت تأهل (marital) هستند.
برای باز کردن برنامه Stata، روی آیکون Stata دوبار کلیک کنید. شما رابط کاربری Stata (Stata/SE 13.0) را مشاهده خواهید کرد که در شکل 1.1 فصل اول نشان داده شده است. سادهترین روش برای تولید یک فایل داده از طریق ویرایشگر دادهها است. برای دسترسی به ویرایشگر داده، از نوار منو انتخاب کنید:
پنجره > ویرایشگر داده
یا
داده > ویرایشگر داده > ویرایشگر داده (ویرایش)
یا
روی آیکون در نوار ابزار کلیک کنید.
شما "ویرایشگر داده (ویرایش) – بدون عنوان" را مشاهده خواهید کرد که در شکل 2.1 نشان داده شده است. این پنجره برای تعریف متغیرها و همچنین وارد کردن دادهها استفاده میشود. برای ایجاد یک فایل داده مراحل زیر را دنبال کنید:
مرحله 1: اولین متغیر ما "idno" است (جدول 2.2). وقتی نشانگر موس در اولین ستون ردیف اول قرار گیرد، در کادر بالای صفحه "var1[1]" نمایش داده میشود. اولین مقدار متغیر "idno" را مطابق با جدول 2.2 وارد کنید (که عدد 1 است، یعنی فقط 1 را تایپ کنید و دکمه "Enter" را فشار دهید). خواهید دید که "var1" در بالای اولین ستون ظاهر میشود (شکل 2.2).
حالا مقدار متغیر دوم "age" (که 26 است) را در اولین خانه از ستون دوم وارد کنید و "Enter" را فشار دهید. خواهید دید که "var2" در بالای ستون دوم ظاهر میشود. به همین ترتیب، مقادیر سایر متغیرها را در صفحهگسترده ویرایشگر داده Stata وارد کنید.
اگر اولین مقداری که برای یک متغیر وارد میشود عدد باشد، Stata آن را بهعنوان یک متغیر عددی در نظر میگیرد و بهطور خودکار فقط اعداد را بهعنوان مقادیر آن متغیر میپذیرد. مقادیر عددی ممکن است با علامت مثبت یا منفی شروع شوند و شامل اعشار باشند. اما اعداد نباید شامل کاما (,) باشند، مانند 10,000 یا 1,000,000.
اگر اولین مقداری که برای یک متغیر وارد میشود یک کاراکتر غیر عددی (مانند m، f یا هر حرف دیگری) باشد، Stata آن را بهعنوان یک متغیر رشتهای (متنی) در نظر میگیرد. یک متغیر رشتهای میتواند مقادیری به طول حداکثر 244 کاراکتر داشته باشد و میتواند ترکیبی از حروف، اعداد، نمادها و فضاها باشد.
شکل 2.1 صفحه گسترده ویرایشگر داده Stata
شکل 2.2 ویرایشگر داده Stata با نام متغیرها
در ویرایشگر دادهها (Data Editor) یا مرورگر دادهها (Data Browser)، مقادیر متغیرهای رشتهای به رنگ قرمز، مقادیر متغیرهای عددی به رنگ سیاه و مقادیر متغیرهای عددی با برچسب (کدگذاری شده) به رنگ آبی نمایش داده میشوند.
مرحله 2: در این مرحله، نامهای متغیرهایی که به طور خودکار توسط Stata تولید شدهاند (مانند var1، var2 و var3) را با نامهای متغیر که در دفترچه کد (Codebook) آمده است (مانند idno، age و ...) جایگزین خواهیم کرد. برای مثال، باید متغیر اول "var1" را به "idno"، متغیر دوم "var2" را به "age" و به همین ترتیب تغییر نام دهیم.
در پنجره ویرایشگر دادهها، سه پنجره به نامهای "Variables"، "Properties" و "Data" وجود دارند. در پنجره "Variables"، نامهای متغیرهایی که به طور خودکار ایجاد شدهاند (مانند var1، var2 و var3) نمایش داده میشوند. بر روی "var1" در پنجره "Variables" کلیک کنید و در پنجره "Properties" خواهید دید که نام "var1" مقابل "Name" قرار دارد. دو بار روی "Name" در پنجره "Properties" کلیک کرده، "var1" را حذف کرده و "idno" را تایپ کنید. این کار "var1" را با "idno" جایگزین خواهد کرد. اکنون میتوانید نام جدید متغیر (idno) را هم در صفحه گسترده (spreadsheet) و هم در پنجره "Variables" مشاهده کنید. به همین صورت، تمام متغیرهای تولید شده خودکار توسط Stata را با نامهای دلخواه خود جایگزین کنید.
همچنین میتوانید از دستور زیر برای تغییر نام متغیر استفاده کنید:
rename var1 idno |
این دستور، متغیر "var1" را به "idno" تغییر نام میدهد.
مرحله 3: اکنون برچسب متغیرها را یکی یکی وارد خواهیم کرد. برای نوشتن برچسب متغیر برای "idno"، روی متغیر "idno" در پنجره "Variables" کلیک کنید و دو بار روی "Label" در پنجره "Properties" کلیک کرده، "serial no" را تایپ کنید. این کار برچسب متغیر "idno" را به "serial no" تغییر خواهد داد. به همین ترتیب، تمام برچسبهای متغیرها را مطابق دفترچه کد تکمیل کنید. راه دیگری برای برچسبگذاری یک متغیر استفاده از دستور زیر در پنجره دستورات (Command window) است:
label var idno "serial no" |
این دستور، متغیر "idno" را به "serial no" برچسبگذاری میکند.
مرحله 4: در این مرحله، برچسبهای مقادیری را که به متغیرها اختصاص داده شده است، تعیین خواهیم کرد. از آنجا که متغیرهای "idno" و "age" متغیرهای دستهبندیشده نیستند (یعنی این متغیرها کدگذاری نشدهاند)، نیازی به برچسب مقادیر ندارند. برچسب مقادیر فقط برای متغیرهای دستهبندیشده که به صورت عددی کدگذاری شدهاند، لازم است. Stata برچسب مقادیر را برای متغیرهای رشتهای نمیپذیرد. بنابراین، باید برچسبهای مقادیر را فقط برای متغیرهای عددی کدگذاری شده مانند "religion"، "occupation" و دیگر متغیرهای مشابه اختصاص دهیم.
برای اختصاص برچسب مقادیر به متغیر "religion"، میتوانید از دستور زیر استفاده کنید یا مراحل زیر را دنبال کنید:
label define religion 1 "Muslim" 2 "Hindu" 3 "Others" |
یا به سادگی:
la de religion 1 "Muslim" 2 "Hindu" 3 "Others" |
یا این مراحل را دنبال کنید:
در پنجره "Variables" در ویرایشگر دادهها، متغیر "religion" را انتخاب کنید.
روی "Value Label" در پنجره "Properties" کلیک کنید.
یک پیکان کشویی و یک جعبه کوچک با 3 نقطه مشاهده خواهید کرد.
روی جعبه سه نقطه کلیک کنید.
روی "Create Label" کلیک کنید.
"religion" را در جعبه "Label name" بنویسید.
1 را در جعبه "Value" بنویسید، "Muslim" را در جعبه "Label" نوشته و "Add" را کلیک کنید.
2 را در جعبه "Value" بنویسید، "Hindu" را در جعبه "Label" نوشته و "Add" را کلیک کنید.
3 را در جعبه "Value" بنویسید، "Others" را در جعبه "Label" نوشته و "Add" را کلیک کنید.
روی "OK" و سپس "Close" کلیک کنید.
در پنجره "Properties"، روی "Value Label" کلیک کرده و از پیکان کشویی "religion" را انتخاب کنید.
با انجام این مراحل یا استفاده از دستور، برچسبهای مقادیر را برای متغیر "religion" و سایر متغیرهای کدگذاریشده در فایل دادهها وارد کنید و دادهها را یکی یکی وارد نمایید.
مرحله 5: پس از تکمیل ورود دادهها (یا به صورت جزئی)، باید فایل دادهها را ذخیره کنید. برای ذخیره فایل دادهها، از منوی بالا گزینه زیر را انتخاب کنید:
File > Save As… > انتخاب پوشه > نام فایل را وارد کنید (.dta به صورت پیشفرض خواهد آمد) > ذخیره
یا از دستور "save" استفاده کنید:
save "C:\Users\HP\Desktop\practice.dta" |
اگر میخواهید فایل دادهها را با همان نام ذخیره کنید، از دستور زیر استفاده کنید:
save, replace |
این دستور، فایل دادهها را با همان نام و در همان محل ذخیره میکند. گزینه replace در دستور فایل قدیمی را با همان نام جایگزین میکند.
دستوراتی برای تغییر نام، برچسبگذاری و تخصیص برچسب مقادیر:
برای تغییر نام متغیر:
rename var1 idno |
برای برچسبگذاری متغیر:
label var idno "serial no." |
برای تخصیص برچسب مقادیر به متغیر:
label define religion 1 "Muslim" 2 "Hindu" 3 "Others" |
label values religion religion |
برای تغییر برچسبهای مقادیر:
label define religion 1 "Muslim" 2 "Hindu" 3 "Christian", replace |
برای مخفی کردن برچسب مقادیر در ویرایشگر دادهها:
Tools > Value Labels > Hide All Value Labels
یا از دستور:
Browse, nolabel |
ایجاد فایل دادهای با استفاده از دستورات کپی و پیست
سادهترین روش برای ایجاد یک فایل دادهای در Stata، کپی و پیست دادهها از یک فایل داده دیگر است، به عنوان مثال از Excel، dBase، SPSS یا دیگر برنامهها. برای مثال، فرض کنید که شما یک فایل دادهای در SPSS، Excel یا برنامهای دیگر دارید. شما میتوانید تمام دادهها را از این فایلها به Stata وارد کنید. برای این کار، پنجره "Data Editor" را در Stata باز کنید (از منوی Window > Data Editor). به فایل دادهای که میخواهید دادهها را از آن کپی کنید بروید. دادههایی که میخواهید وارد کنید را انتخاب کرده و کپی کنید (Control-C) و سپس آنها را در صفحه گسترده پنجره "Data Editor" در Stata پیست کنید (Control-V). Stata به طور خودکار نام متغیرها را به عنوان var1، var2 و var3 و غیره ارائه میدهد. نام متغیرها (مانند var1، var2، var3 و دیگران) را به نامهای دلخواه خود تغییر دهید. همچنین برچسبهای متغیر و برچسبهای مقادیر را طبق آنچه که در بخش 2.1.1 گفته شد وارد کنید. در نهایت، فایل دادهها را در مکان مورد نظر خود ذخیره کنید (File > Save as > …). این روش برای مجموعه دادههای کوچک با تعداد کمی از متغیرها مناسب است.
وارد کردن فایل دادهای از برنامههای دیگر
نسخه 16 و بالاتر Stata گزینهای برای وارد کردن مستقیم دادههای SPSS به Stata دارد، با استفاده از منوی کشویی [File > Import > SPSS data (*.sav)]. نسخههای پایینتر این گزینه را ندارند. با این حال، بهترین روش برای وارد کردن فایل دادهای SPSS به Stata این است که ابتدا فایل دادهای را در SPSS به فرمت Stata ذخیره کنید.
برای مثال، اگر میخواهید فایل دادهای SPSS به نام "wealth.sav" را به "wealth.dta" در فرمت Stata تبدیل کنید، ابتدا فایل داده را در SPSS باز کنید. سپس مراحل زیر را دنبال کنید: File > Save as… > از منوی کشویی "Save as type"، Stata Version 13 SE (*.dta) را انتخاب کنید > نام "wealth" را در جعبه نام فایل وارد کنید > Save.
این کار فایل دادهای SPSS "wealth" را به فرمت Stata تبدیل و ذخیره میکند. همچنین میتوانید از برنامههای تبدیل داده مناسب برای وارد کردن دادهها از SPSS یا دیگر فرمتها به فرمت Stata استفاده کنید.
حذف و وارد کردن متغیرها
حذف یک متغیر
شما میتوانید متغیرهای ناخواسته را از فایل داده حذف کنید. برای حذف یک متغیر، مراحل زیر را دنبال کنید:
یک متغیر را در پنجره "Variables" در Stata انتخاب کنید.
روی آن راست کلیک کرده و گزینه "Drop selected variables" را انتخاب کنید.
همچنین میتوانید از دستور "drop" برای حذف یک متغیر استفاده کنید. برای مثال، اگر بخواهید متغیر "sex" را از فایل داده حذف کنید، از دستور زیر استفاده کنید:
drop sex |
وارد کردن یک متغیر جدید
شما نمیتوانید یک متغیر جدید را در فایل داده وارد کنید مگر اینکه مقداری (یا مقدار گمشده) برای آن متغیر انتخاب کنید. برای مثال، اگر بخواهید یک متغیر جدید به نام "gender" وارد کنید که تمام مقادیر آن برابر با 1 باشد، از دستور زیر استفاده کنید:
generate gender=1 |
یا:
gen gender=1 |
اگر بخواهید متغیر "gender" را با مقادیر گمشده وارد کنید، از دستور زیر استفاده کنید:
gen gender=0 |
متغیر جدید به عنوان آخرین متغیر در فایل داده ظاهر خواهد شد. همچنین باید برچسب متغیر و برچسبهای مقادیر را برای متغیر جدید وارد کنید همانطور که قبلاً توضیح داده شد (بخش 2.1.1).
کپی کردن یک متغیر در همان فایل داده
شما ممکن است بخواهید یک متغیر را در همان فایل دادهای که در حال استفاده هستید کپی کنید. فرض کنید که میخواهید یک کپی از متغیر "religion" که در حال حاضر در مجموعه داده موجود است، ایجاد کنید. برای این کار، باید یک متغیر جدید ایجاد کنید زیرا فایل داده نمیتواند همان نام متغیر را به عنوان نسخه کپیاش بپذیرد. بیایید نام متغیر جدید را "religion2" بگذاریم. برای کپیکردن دقیق (کلون) متغیر "religion" از دستور زیر استفاده کنید:
clonevar religion2=religion |
همچنین میتوانید از دستور زیر استفاده کنید:
gen religion2=religion |
مزیت استفاده از دستور "clonevar" این است که برچسب متغیر و برچسب مقادیر را همانند متغیر قدیمی حفظ میکند، از جمله کد مقادیر گمشده. از طرف دیگر، اگر از دستور "gen" استفاده شود، برچسب متغیر و برچسب مقادیر در متغیر جدید حفظ نمیشود و باید به طور جداگانه وارد شوند.