如何在Stata中重新确定列类型

时间:2016-10-05 03:39:53

标签: stata

我在Stata中有一列数字但是作为字符串读入,因为它包含一个字符串值“nan”表示其中一个数字。我已经用缺少的值替换了它,所以列现在只包含数字,尽管都是字符串格式。重新确定列类型的命令是什么?

1 个答案:

答案 0 :(得分:2)

术语:"列"在Stata中总是被称为变量

数字或字符串变量在第一个实例中是变量类型或存储类型。然后分配显示格式。 "格式"在Stata并不意味着变量类型。

使用这样的数据

clear
input str5 stryit 
"1"
"2"
"42"
"666"
"NAN"
end 

有几个谨慎的规则。

检查以下哪些观察结果不会产生数值:

tab stryit if missing(real(stryit)) 

如果有很多这样的类型,您可能需要重新考虑这种方法。

始终保留原始变量,除非您确定不再需要它。因此,如果您愿意,请将destringforce一起使用,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

的原作者