lswgdhy 发表于 2010-4-23 15:42 
5# 蓝色
再请教,现在我把文字删除了,为何还不行?数据见附件。
. table year
----------------------
year | Freq.
----------+-----------
10 | 1
1189 | 1
----------------------
. destring year,g (newyear)
year contains nonnumeric characters; no generate,不知道哪些数据还含有非数字特征,如果只选取极小的一部分又能转化为数字。如何识别出这些非数字特征的观察值。
help destring, 我发现“... destring also ignores any leading or trailing spaces...”,事实上用不着8楼sungmoo的trim()函数,但楼主说命令还不能用我就感觉有点奇怪啦。花个论坛币下载你的数据看看(楼主这么有钱,应该发个悬赏贴才对嘛。:-))
如果你想知道哪些数据含有非数字特征,用如下命令试试:
use 数据.dta, clear
destring year, gen(newyear)
force
// 看看到底是怎么回事
bysort year: list year if newyear == . & _n == 1
// ……发现year含有字符空值("")、"年",还有个很奇怪的" 197"(并非空格" ",trim()命令无效)。
drop newyear
// 用destring命令的ignore()选项将找出的非数字特征字符去除
destring year, gen(newyear) force
ignore("年" " ") // 将log中197前的“空格” 拷至ignore()中。
// 此时nyear还有809个空值,原因为year本来就是字符空值。