我在從廣角重塑數據以長格式問題:整形到長時間沒有標識符
- 我對範圍的變量沒有標識符的變量。
- 我的數據集非常寬。我確實有大約7000個變量。
- 每個ID的變量數量不是常數,所以對於某些ID我有5個,其他ID有10個變量。
我希望這Stata FAQ可以幫助我,但不幸的是這不能正常工作(請參閱下面的代碼片段)。
所以,我有一個看起來像下面的示例數據:
clear
input str45 Year
"2010"
"2011"
"2012"
"2014"
end
input str45 A101Meas0010
"1.50"
"1.70"
"1.71"
"1.71"
input str45 A101Meas0020
"50"
"60"
"65"
"64"
input str45 A101Meas0020A
"51"
"62"
"64"
"68"
input str45 FE123Meas0010
"1.60"
"1.75"
"1.92"
"1.94"
input str45 FE123Meas0020
"60"
"72"
"88"
"92"
list
+-------------------------------------------------------------+
| Year A10~0010 A10~0020 A1~0020A FE1~0010 FE1~0020 |
|-------------------------------------------------------------|
1. | 2010 1.50 50 51 1.60 60 |
2. | 2011 1.70 60 62 1.75 72 |
3. | 2012 1.71 65 64 1.92 88 |
4. | 2014 1.71 64 68 1.94 92 |
+-------------------------------------------------------------+
決賽桌我要實現的將是這個樣子:
+--------------------------------------------------+
| Year ID Meas0010 Meas0020 Meas0020A |
|--------------------------------------------------|
1. | 2010 A101 1.50 50 . |
2. | 2010 FE123 1.60 51 60 |
3. | 2011 A101 1.70 60 . |
4. | 2011 FE123 1.75 62 72 |
5. | 2012 A101 1.71 65 . |
6. | 2012 FE123 1.92 64 88 |
7. | 2014 A101 1.71 64 . |
8. | 2014 FE123 1.94 68 92 |
+--------------------------------------------------+
我嘗試下面的代碼片段接近來自Stata FAQ的例子,但是這會引發一個錯誤:
unab vars : *Meas*
local stubs : subinstr local vars "Meas0010" "", all
local stubs : subinstr local stubs "Meas0020" "", all
local stubs : subinstr local stubs "Meas0020A" "", all
reshape long "`stubs'", i(Year) j(Measurement) string
(note: j = Meas0010 Meas0020 Meas0020A)
(note: A101AMeas0010 not found)
variable A101Meas0010 not found
r(111);
任何想法h重塑這個?我以前從來不需要重塑這種奇怪的結構。
附加問題:在上面的例子中,我確實必須指定測量名稱Meas0010
,Meas0020
和Meas0020A
。這是否也可以自動化?所有測量名稱均以關鍵字Meas
開頭,因此變量名稱始終爲結構_ID + Meas
名稱,例如, A101Meas0020A
代表ID A101
和測量Meas0020A
。
令人討厭的是:我知道如何在MATLAB中做到這一點,但我不得不在這裏使用Stata。
最好避免對任何軟件的負面評論,當你需要幫助時,即使你打算幽默。 –
交叉發表於http://www.statalist.org/forums/forum/general-stata-discussion/general/1353074-reshape-from-wide-to-long-without-identifier-and-variable-number-of -stubs在任何論壇上告訴人們有關交叉發帖都很有禮貌。 –
忘記提交交叉郵報是我的錯。我很抱歉。但是,我絕不會在我的帖子中對Stata發表任何言論,因此我也不接受提及的批評暗示。我在MATLAB中100%流利,可以在幾分鐘內解決這個問題。由於在這個項目中我沒有獲得MATLAB許可證,我需要用Stata解決這個問題 - 我還沒有充分了解這個軟件(並且花了3個小時沒有任何進展)。請不要誤會我的意思 - 對於我在這裏工作的特定應用程序,Stata是最好的工具之一。 – EliteTUM