我有一个数据集,其数据按月和年分类。我想destring
月份变量,这样我最终可以创建一个日期变量,但因为它们都标记为1月,2月等,我如何destring
变量?
答案 0 :(得分:0)
你没有。这是日期功能的工作。所有都记录在案,例如通过help datetime
。
destring
用于恰好被读取为字符串变量的数字,因此典型条目可能是"42"
和"666"
。当变量包括元数据(例如标题行)或缺失的非Stata标志(例如"NA"
)或一些其他非数字字符时,通常会出现以字符串形式导入,通常只有一个观察。从MS Excel导入是一个常见原因,因为电子表格用户在数字数据列中洒水时往往会松散。
具有"January"
等值的变量不符合条件。在您的脑海中,月份名称映射到月份数字,但destring
不会分享该知识。
日期功能有这个职位:
* Example generated by -dataex-. To install: ssc install dataex
clear
input str8 month float year
"January" 2017
"February" 1942
end
gen mdate = monthly(month + string(year), "MY")
list
+-------------------------+
| month year mdate |
|-------------------------|
1. | January 2017 684 |
2. | February 1942 -215 |
+-------------------------+
format mdate %tm
list
+--------------------------+
| month year mdate |
|--------------------------|
1. | January 2017 2017m1 |
2. | February 1942 1942m2 |
+--------------------------+
(感兴趣的声明:destring
的原作者。)
另见this thread。