Stata MP 17.0中按日期删除观测值遇问题求助
Stata删除特定日期观测值的正确方法
Stata里的%td格式日期变量本质是数值型(存储的是从1960年1月1日起的天数),不是字符串,这就是你要么删不掉、要么报type mismatch的核心原因。下面给两种靠谱的解决办法:
方法一:用
date()函数把目标日期转成Stata数值格式
比如要删除日期为10/05/2023(月/日/年)的观测,执行:drop if doi == date("10/05/2023", "MDY")注意第二个参数
"MDY"要和你输入的日期字符串格式对应:如果是日/月/年就写"DMY",年/月/日就写"YMD"。方法二:用
td()函数直接指定日期(更简洁)
同样删除2023年10月5日的观测,执行:drop if doi == td(05oct2023)这里日期格式是
DDmonYYYY,mon是英文月份缩写(比如jan、feb、oct),大小写不影响。
避坑提醒
- 别直接用字符串和日期变量比较,比如
drop if doi == "10/05/2023",数值和字符串类型不匹配必然报错。 - 用
date()函数时,一定要确保格式码和输入的日期字符串对应,否则会转成缺失值,导致删不掉目标观测。
内容的提问来源于stack exchange,提问作者Samira Dilruba Ali
相关产品推荐
相关产品推荐

