楼主: 背心妈妈
15990 9

[数据管理求助] 提取数值型变量前4位,结果显示只提取出1位。 [推广有奖]

  • 0关注
  • 0粉丝

本科生

54%

还不是VIP/贵宾

-

威望
0
论坛币
1296 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
160 点
帖子
5
精华
0
在线时间
194 小时
注册时间
2011-6-22
最后登录
2021-11-15

楼主
背心妈妈 发表于 2015-9-24 00:47:57 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
出生年份的原始字符型变量转换为数值型变量birth(表示如199001),提取前四位用命令为gen birthyear=real(substr(string(birth),1,4)),但结果显示提取出的对应199001的变量为1. 已尝试无论提取前几位,对应199001的变量结果仍为1(其他观测值同).请教这种情况如何处理?谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:结果显示 数值型 string SUBSTR Birth

沙发
王尼采1 发表于 2015-9-24 02:40:52
帮顶贴,我也是路过~!
shkfp5946.jimdo.com

藤椅
蓝色 发表于 2015-9-24 07:57:41
. list

     +--------+
     |  birth |
     |--------|
  1. | 190001 |
     +--------+

. gen birthyear=real(substr(string(birth),1,4))

.
. list

     +-------------------+
     |  birth   birthy~r |
     |-------------------|
  1. | 190001       1900 |
     +-------------------+

命令是没有问题的
你仔细看看你的birth变量到底是什么

板凳
091230013man 发表于 2018-3-6 21:57:32
蓝色 发表于 2015-9-24 07:57
. list

     +--------+
我也出现了同样的问题,不知道有没有什么处理方法,已经把原始检查了一遍,把科学计数法改成常值,但是结果还是没有变化,并且对第三个变量进行改变,也是没有变化

报纸
091230013man 发表于 2018-3-6 21:58:07
楼主,请问已经解决这个问题了吗?我也遇到同样的问题,无解

地板
蓝色 发表于 2018-3-7 07:54:31
091230013man 发表于 2018-3-6 21:57
我也出现了同样的问题,不知道有没有什么处理方法,已经把原始检查了一遍,把科学计数法改成常值,但是结 ...
什么信息都不提供
别人怎么回答
看看别人获得回答的都怎么提问的
没有得到回答的都怎么提问的

7
091230013man 发表于 2018-3-7 15:25:21
蓝色 发表于 2018-3-7 07:54
什么信息都不提供
别人怎么回答
看看别人获得回答的都怎么提问的
我需要截取行政区划代码 a2a 前两位数字出来,变量类型为数值型,
我用了以下函数截取,数据如下,结果只能出来第一位数字,我把科学计数法改成数值显示后截取也只能截取出第一位数,
gen byte pid = real(substr(string(a2a),1,2))

a2a
3.303e+11
3.303e+11
1.308e+11
1.301e+11
1.304e+11
1.305e+11
1.312e+11
1.302e+11
1.304e+11
1.302e+11
1.306e+11
1.304e+11
1.305e+11


8
091230013man 发表于 2018-3-7 15:27:00
蓝色 发表于 2018-3-7 07:54
什么信息都不提供
别人怎么回答
看看别人获得回答的都怎么提问的
我把数据除以(10^8)缩小后,截取结果出来了,不知道这样结果是否正确

9
wjwcfok 发表于 2019-11-11 16:52:05
091230013man 发表于 2018-3-7 15:27
我把数据除以(10^8)缩小后,截取结果出来了,不知道这样结果是否正确
前辈好,提取字符串数据遇到只能提取一位的情况,如果字符串代码长度不一,有的只有两位,有的又十几位数,如何使用你建议的将数据除以某个数呢?
谢谢

10
taochangcau 发表于 2020-1-14 16:49:57
我参考help substr里面的命令
gen schid=substr(id_c,1,4)
其中id_c是一串数字编码,用tostring转换成字符型变量了
可以准确提取出前四位
已有 1 人评分论坛币 收起 理由
郭炜英 + 5 精彩帖子

总评分: 论坛币 + 5   查看全部评分

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

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