我正在使用Stata并拥有一个年度范围从1990年到2015年的面板数据集 . 在浏览数据时,年份显示为1990年,1991年等 . 但是,例如,当试图减少一年时,它只能按以下方式工作
drop if year==11
这导致2000年下降 . 当绘制数据时,刻度也显示为1,2,3,4 ...,25,26,而不是实际年份 .
如何将年份转换为实际值?
听起来好像您或其他人使用 year 作为字符串变量读取数据,然后使用 encode 生成数字变量 . 这是非常错误的方法,正如你已经发现的那样:你做 not 希望字符串映射到整数1 . 那种情况你需要 destring . 既然你已经完成了这个,你需要 decode 然后 destring 或(如果原始变量仍然存在于数据集中) destring .
year
encode
destring
decode
请注意,您应该仔细检查您的数据 . 为什么一年以这种方式进口?当数据来自电子表格并且人们没有仔细检查元数据(例如 Headers 信息)时,通常会发生这种情况 .
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 . 当然,它在计算中是一个过载的术语 .
help format
1 回答
听起来好像您或其他人使用
year
作为字符串变量读取数据,然后使用encode
生成数字变量 . 这是非常错误的方法,正如你已经发现的那样:你做 not 希望字符串映射到整数1 . 那种情况你需要destring
. 既然你已经完成了这个,你需要decode
然后destring
或(如果原始变量仍然存在于数据集中)destring
.请注意,您应该仔细检查您的数据 . 为什么一年以这种方式进口?当数据来自电子表格并且人们没有仔细检查元数据(例如 Headers 信息)时,通常会发生这种情况 .
此外,在Stata中,"format"与存储的内容无关,而是与显示的内容无关 . 见
help format
. 当然,它在计算中是一个过载的术语 .