मुझे A, B और C नाम के तीन डेटासेट जोड़ने हैं, जिनमें विभिन्न वर्षों का डेटा है (उदाहरण के लिए, 1990, 1991...2014)।

समस्या यह है कि सभी डेटासेट में सभी सर्वेक्षण वर्ष नहीं होते हैं और इसलिए बेजोड़ वर्षों को जोड़ने से पहले मैन्युअल रूप से छोड़ने की आवश्यकता होती है।

मैं जानना चाहता हूं कि क्या तीन (या अधिक) डेटासेट जोड़ने का कोई तरीका है जो केवल मिलान किए गए चर को डेटासेट (इस मामले में वर्ष) में रखेगा।

0
Ghose Bishwajit 11 अक्टूबर 2018, 03:06

1 उत्तर

सबसे बढ़िया उत्तर

निम्नलिखित खिलौना उदाहरण पर विचार करें:

clear

input year var
1995 0
1996 1
1997 2
1998 3 
1999 4
2000 5
end

save data1, replace

clear

input year var
1995 6
1996 9
1998 7 
1999 8
2000 9
end

save data2, replace

clear

input year var
1995 10
1996 11
1997 12
2000 13
end

save data3, replace

ऐसा कोई विकल्प नहीं है जो append को वह करने के लिए बाध्य करे जो आप चाहते हैं, लेकिन आप निम्न कार्य कर सकते हैं:

use data1, clear

append using data2 data3
duplicates tag year, generate(tag)

sort year
list

     +------------------+
     | year   var   tag |
     |------------------|
  1. | 1995     0     2 |
  2. | 1995     6     2 |
  3. | 1995    10     2 |
  4. | 1996     9     2 |
  5. | 1996     1     2 |
     |------------------|
  6. | 1996    11     2 |
  7. | 1997     2     1 |
  8. | 1997    12     1 |
  9. | 1998     7     1 |
 10. | 1998     3     1 |
     |------------------|
 11. | 1999     8     1 |
 12. | 1999     4     1 |
 13. | 2000    13     2 |
 14. | 2000     5     2 |
 15. | 2000     9     2 |
     +------------------+

drop if tag == 1
list

     +------------------+
     | year   var   tag |
     |------------------|
  1. | 1995     0     2 |
  2. | 1995     6     2 |
  3. | 1995    10     2 |
  4. | 1996     9     2 |
  5. | 1996     1     2 |
     |------------------|
  6. | 1996    11     2 |
  7. | 2000    13     2 |
  8. | 2000     5     2 |
  9. | 2000     9     2 |
     +------------------+

आप चर tag का अधिकतम मान ज्ञात करके और सभी अवलोकनों को उस मान के साथ रखकर इस दृष्टिकोण को और भी सामान्य बना सकते हैं:

summarize tag
keep if tag == `r(max)'
2
11 अक्टूबर 2018, 20:33