我在Stata中有一列数字但是作为字符串读入,因为它包含一个字符串值“nan”表示其中一个数字。我已经用缺少的值替换了它,所以列现在只包含数字,尽管都是字符串格式。重新确定列类型的命令是什么?
答案 0 :(得分:2)
术语:"列"在Stata中总是被称为变量。
数字或字符串变量在第一个实例中是变量类型或存储类型。然后分配显示格式。 "格式"在Stata并不意味着变量类型。
使用这样的数据
clear
input str5 stryit
"1"
"2"
"42"
"666"
"NAN"
end
有几个谨慎的规则。
检查以下哪些观察结果不会产生数值:
tab stryit if missing(real(stryit))
如果有很多这样的类型,您可能需要重新考虑这种方法。
始终保留原始变量,除非您确定不再需要它。因此,如果您愿意,请将destring
与force
一起使用,generate
新变量。在你的情况下,这将是好的。
destring stryit, force gen(ntryit1)
比使用force
更好的是明确您的转化规则。这留下了你所做的事情的记录(当然假设你记录了任何严肃分析中使用的所有命令):
destring stryit, ignore("NA") gen(ntryit2)
您可以在destring
之前明确更改有问题的值。与之前的规则一样,这样做的一个优点是,您可以记录您所做的事情。
clonevar stryit2 = stryit
replace stryit2 = "." if stryit2 == "NAN"`
destring stryit2, gen(ntryit3)
检查结果是否有意义:
list
+------------------------------------------------+
| stryit ntryit2 ntryit1 stryit2 ntryit3 |
|------------------------------------------------|
1. | 1 1 1 1 1 |
2. | 2 2 2 2 2 |
3. | 42 42 42 42 42 |
4. | 666 666 666 666 666 |
5. | NAN . . . . |
+------------------------------------------------+
免责声明:destring