我正在與Stata合作,並有一個面板數據集,其年數從1990年到2015年不等。瀏覽數據時,年份顯示爲1990年,1991年等。然而,例如,嘗試了一年下降的時候,它只能通過以下方式Stata年顯示不同於存儲格式
drop if year==11
導致下降到2000年當繪製數據,蜱也顯示爲1,2,3,4 ...,25,26,而不是實際的年份。
我該如何將年份換算回實際值?
我正在與Stata合作,並有一個面板數據集,其年數從1990年到2015年不等。瀏覽數據時,年份顯示爲1990年,1991年等。然而,例如,嘗試了一年下降的時候,它只能通過以下方式Stata年顯示不同於存儲格式
drop if year==11
導致下降到2000年當繪製數據,蜱也顯示爲1,2,3,4 ...,25,26,而不是實際的年份。
我該如何將年份換算回實際值?
聽起來好像您或其他人讀取的數據爲year
作爲字符串變量,然後使用encode
來生成數值變量。這是相當錯誤的方法,因爲你已經發現:你想不是想要字符串映射到整數1了。你需要destring
這種情況。現在您已完成此操作,您需要decode
,然後destring
或(如果原始變量仍存在於數據集中)destring
。
請注意,您應仔細檢查您的數據。爲什麼年份以這種方式進口?當數據來自電子表格並且人們沒有仔細檢查元數據(例如標題信息)時,通常會發生這種情況。
clear
input str4 original
"1990"
"1991"
"1992"
end
encode original, gen(year)
* solution 1
decode year, gen(year2)
destring year2, replace
* solution 2 (better)
destring original, replace
list
+-------------------------+
| original year year2 |
|-------------------------|
1. | 1990 1990 1990 |
2. | 1991 1991 1991 |
3. | 1992 1992 1992 |
+-------------------------+
此外,在Stata中,「格式」與存儲的內容無關,而與顯示內容無關。見help format
。自然而然,這是計算中的一個超負荷的術語。
數據是從Excel工作表導入的,具有所有「常規」單元格格式,但不確定導入數據的年份爲字符串,元數據中也沒有可用的相關信息。但是,的確,我使用了編碼命令將變量轉換爲數字,但現在已經解決了,感謝Nick的幫助! – Feodo
這並不足以解決'import'發生的問題。你使用'import excel'或'import delimited'或複製和粘貼什麼?你對任何元數據做了什麼,例如列標題?請注意'import excel'的'firstrow'選項。任何方式,現在你知道'encode'是字符串變量與數字內容的字面意思是一個壞主意。 –
注意https://stackoverflow.com/help/mcve提供標準的問題。我的回答需要一些猜測。如果這不是正確的答案,則需要提供更多信息。 –