Stata 年份显示与存储格式不同

Stata year display different than stored format

我正在使用 Stata 并有一个面板数据集,年份从 1990 年到 2015 年。浏览数据时,年份显示为 1990、1991 等。但是,例如,当尝试减少一年时,它只能按以下方式工作

drop if year==11

这导致 2000 年下降。绘制数据时,刻度也显示为 1,2,3,4...,25,26,而不是实际年份。

如何将年份换算成它们的实际值?

听起来好像你或其他人用 year 作为字符串变量读入数据,然后使用 encode 生成数字变量。这是完全错误的方法,正如您所发现的:您 而不是 希望将字符串映射到整数 1 上。在这种情况下你需要 destring。现在您已完成此操作,您需要 decode,然后是 destring 或(如果原始变量仍存在于数据集中)destring

请注意,您应该仔细检查您的数据。为什么首先以这种方式导入年份?当数据来自电子表格并且人们没有足够仔细地检查元数据(例如 header 信息)时,通常会发生这种情况。

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 中,"format" 与存储的内容无关,而与显示的内容相关。参见 help format。自然地,它是计算中的一个重载术语。