一、statadestring命令
在Stata中,statadestring命令可以对字符串变量进行转换,将字符串变量转化为数值变量或日期变量类型。当字符串变量需要进行数值运算或排序时,我们可以使用该命令进行转换。
语法格式如下:
statadestring varname [if] [in] [, gen(newvarname) fvfmt(stringfmt) fvlo(numbformat) fvhi(numbformat) replace]
其中,varname表示需要进行转换的字符串变量名;gen(newvarname)表示将转换后的变量生成一个新的变量名;fvfmt(stringfmt)表示在对字符串转换为数值类型时,使用的格式字符串;fvlo(numbformat)和fvhi(numbformat)表示对于含有无穷大或缺失值的字符串,转换后的取值方式。
下面是一个实例:
sysuse auto, clear list price rep78 gear_ratio, clean noobs statadestring rep78 list price rep78 gear_ratio rep78num, clean noobs
这个实例将rep78字符串变量转换为rep78num数值变量,并将其添加到了数据集中。
二、statadestring函数
在Stata中,statadestring函数可以将一个字符串类型的变量转换为数值类型。
语法格式如下:
statadestring(expression [,stringfmt])
其中,expression表示需要转换的含有数字的字符串变量或字符串,stringfmt表示使用的格式字符串。
下面是一些实例:
clear input str10 strvar "10" "3.4" "5.2" "." ".1" "1.0e-06" "23.4" end gen numvar = statadestring(strvar) // 转化为数值变量 display numvar
该实例中,将strvar中的字符串转化为numvar数值变量。
三、statadestring小数位数变少
在Stata中,当字符串类型的数字太长(比如有很多小数位)时,转化为数值类型后也会按照原来的小数位数显示。可以通过使用stringfmt参数来控制小数位数。
例如:
clear input str10 strvar "3.45678" end gen numvar = statadestring(strvar, "%10.2f") // 保留两位小数 format numvar %10.2f // 控制输出格式 display numvar
通过设置stringfmt参数,将小数位控制为保留2位。
四、statadestring不管用
在Stata中,有时候statadestring在转换过程中可能会出现问题,例如在使用中输出全部为missing或者valuelabels里的内容不正确等。这时候可以尝试使用其他函数或命令进行转换。
例如:
clear input str10 strvar "3.4" "5.2" "8.1" "2.1" "5.666" end gen numvar = real(strvar) // 使用real函数进行转换 display numvar
该实例中,使用real函数进行字符串转换,可以得到正确的结果。
五、stata的string怎么改
在Stata中,可以使用replace命令将字符串变量进行修改。
例如:
sysuse auto, clear list rep78, clean noobs replace rep78 = "3" if rep78 == "3" list rep78, clean noobs
该实例中,将rep78中所有为字符串"3"的值改为字符串"4"。
六、stata的string
在Stata中,可以通过string命令来创建和修改字符串变量。
例如:
sysuse auto, clear string make2 = make + "2" list make make2, clean noobs
该实例中,将make字符串变量加上"2"之后,生成一个新的字符串变量make2,并将其添加到了数据集中。
七、stata的string变成数值
在Stata中,有时候需要将字符串变量转换为数值变量类型。可以使用上文提到的statadestring命令或函数进行转换。
例如:
sysuse auto, clear list price rep78, clean noobs statadestring rep78 list price rep78num, clean noobs
该实例中,将rep78字符串变量转换为rep78num数值变量,并将其添加到了数据集中。