楼主: joddy1990
401647 76

[数据管理求助] 如何将stata中的字符型数据转为数值型   [推广有奖]

  • 1关注
  • 2粉丝

大专生

96%

还不是VIP/贵宾

-

威望
0
论坛币
63 个
通用积分
2.2914
学术水平
3 点
热心指数
3 点
信用等级
3 点
经验
550 点
帖子
44
精华
0
在线时间
57 小时
注册时间
2014-8-17
最后登录
2018-7-23

楼主
joddy1990 发表于 2014-10-7 09:18:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata 字符型数据 tata 数值型 字符型 如何

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
胡老 + 3 + 3 + 3 精彩帖子
happy_287422301 + 100 + 40 鼓励积极发帖讨论

总评分: 经验 + 100  论坛币 + 40  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

沙发
h_yuanzhe 发表于 2014-10-7 09:21:39
可能含有空格等情况,最好把样本贴出来。
已有 1 人评分经验 热心指数 收起 理由
crystal8832 + 5 + 1 热心帮助其他会员

总评分: 经验 + 5  热心指数 + 1   查看全部评分

藤椅
statax 发表于 2014-10-7 09:21:39
把nonnumeric characters改一下再重新用destring命令
已有 3 人评分经验 论坛币 学术水平 热心指数 收起 理由
追梦少女 + 1 精彩帖子
我的素质低 + 10 精彩帖子
crystal8832 + 5 + 1 热心帮助其他会员

总评分: 经验 + 5  论坛币 + 10  学术水平 + 1  热心指数 + 1   查看全部评分

板凳
shajia2008 在职认证  发表于 2014-10-7 09:34:38
回答错误,抱歉
已有 10 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
凌隐寒 + 5 + 2 精彩帖子
我是红薯 + 1 + 1 精彩帖子
日新少年 + 2 + 2 + 2 精彩帖子
starry9797 + 1 + 1 + 1 精彩帖子
Cermouth + 1 + 1 + 1 精彩帖子
zhydoge + 1 + 1 精彩帖子
陈阿婆的考拉 + 1 + 1 + 1 精彩帖子
胡老 + 5 + 5 + 5 好的意见建议
能不跟我一样吗 + 1 + 1 好的意见建议
crystal8832 + 1 热心帮助其他会员

总评分: 经验 + 5  论坛币 + 5  学术水平 + 13  热心指数 + 16  信用等级 + 10   查看全部评分

报纸
joddy1990 发表于 2014-10-7 09:58:28
shajia2008 发表于 2014-10-7 09:34
试一下encode varname, gen (newvarname)。varname是字符型变量,newvarname没问题的话就是转变后的数值型变 ...
O(∩_∩)O谢谢楼主,已成功转换为数值型了,但是又出现了一个新问题,很奇怪的,我使用了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 |
      +--------------+

地板
似水24 发表于 2014-10-7 13:27:28
加空格?

7
xingxf 发表于 2014-10-11 03:32:26
你这个例子里用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”
已有 15 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
小想想 + 1 + 1 + 1 + 1 观点有启发
王文子 + 1 + 1 + 1 精彩帖子
这还用说 + 5 + 1 + 1 + 1 比上面那个说encode的靠谱多了。数字发红是.
Affei1 + 1 + 1 + 1 精彩帖子
Quokkka + 1 + 1 + 1 精彩帖子
飞鸟飞啊飞 + 1 + 1 + 1 精彩帖子
得食阶除鸟雀驯5 + 1 + 1 + 1 精彩帖子
珊珊华 + 1 + 1 + 1 精彩帖子
▽`xiao卯 + 5 + 1 + 1 + 1 精彩帖子
挂牌子9 + 1 精彩帖子

总评分: 论坛币 + 11  学术水平 + 16  热心指数 + 16  信用等级 + 14   查看全部评分

8
xingxf 发表于 2014-10-11 03:36:44
shajia2008 发表于 2014-10-7 09:34
试一下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

9
joddy1990 发表于 2014-10-11 16:13:18
xingxf 发表于 2014-10-11 03:32
你这个例子里用encode处理字符变数字是不合适的。请看看Stata对encode的说明:encode creates a new variab ...
我知道了,谢谢楼主,本人初学stata,很多基础知识还没掌握,楼主又让我涨了一层知识,O(∩_∩)O谢谢

10
prescottwong 发表于 2015-3-10 01:50:43
joddy1990 发表于 2014-10-11 16:13
我知道了,谢谢楼主,本人初学stata,很多基础知识还没掌握,楼主又让我涨了一层知识,O(∩_∩)O谢谢
能否帮忙解决一下面板数据声明的问题,https://bbs.pinggu.org/forum.php? ... ;page=1#pid28968009

谢谢1

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-8 15:12