我正在与Stata合作,并有一个从1990年到2015年的面板数据集。浏览数据时,年份显示为 1990、1991 等。但是,例如,当尝试减少一年时,它只能通过以下方式工作
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
。自然,这是计算中的一个超载术语。