本站分享:AI、大数据、数据分析师培训认证考试,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训

如何将stata中的字符型数据转为数值型

stata培训 cdadata 44128℃

如何将stata中的字符型数据转为数值型

关键词:stata字符转数值stata 数值型转字符型

我从Excel表中将年龄数据粘贴到了stata中,不只为什么显示为红色字(即为字符型),我使用destring a103,replace的命令,结果显示a103 contains nonnumeric characters; no replace,然后仍然还是字符型的,我应该怎么办才能转化为数值型


把nonnumeric characters改一下再重新用destring命令

试一下encode varname, gen (newvarname)。varname是字符型变量,newvarname没问题的话就是转变后的数值型变量啦

encode在楼主的例子里面恐怕是不合适的,Stata的说明:
Do not use encode if varname contains numbers that merely happen to be stored as strings; instead, use generate newvar = real(varname) or destring

已成功转换为数值型了,但是又出现了一个新问题,很奇怪的,我使用了list a103a b104 if a103a<=30&b104==1这个命令,但怎么列出来的a103a还有大于30的呢

+————–+
| a103a   b104 |
|————–|
99. |    34      1 |
100. |    35      1 |
267. |    34      1 |
268. |    30      1 |
291. |    28      1 |
|————–|
347. |    26      1 |
348. |    24      1 |
588. |    29      1 |
589. |    24      1 |
725. |    34      1 |
|————–|
751. |    30      1 |
1044. |    27      1 |
1045. |    26      1 |
1090. |    27      1 |
1132. |    27      1 |
|————–|
1133. |    27      1 |
1156. |    34      1 |
1194. |    32      1 |
1357. |    35      1 |
1364. |    25      1 |
|————–|
1365. |    22      1 |
1373. |    20      1 |
1524. |    28      1 |
1556. |    32      1 |
1557. |    31      1 |
|————–|
1605. |    35      1 |
1777. |    32      1 |
1832. |    27      1 |
+————–+


你这个例子里用encode处理字符变数字是不合适的。请看看Stata对encode的说明:encode creates a new variable named newvar based on the string variable varname, creating, adding to, or just using (as necessary) the value label newvar or, if specified, name.  Do not use encode if varname contains numbers that merely happen to be stored as strings; instead, use generate newvar = real(varname) or destring; see real() or [D]destring.

这个说的很明白了,“Do not use encode if varname contains numbers that merely happen to be stored as strings; instead, use generate newvar = real(varname) or destring;”

至于你用destring为什么出现问题,你的错误提示说明,你那个变量里面存在非数字的字符。你应该仔细检查一下,变量里存在什么字符。如果你确认这个变量就应该是数字,可以直接转换的话。那么,可以在destring后面加上force参数
destring var, replace force

force参数的作用是“convert nonnumeric strings to missing values”

转载请注明:数据分析 » 如何将stata中的字符型数据转为数值型

喜欢 (9)or分享 (0)