楼主: shawfee
17401 38

[问答] 求助:如何将字符转换成数值 [推广有奖]

  • 15关注
  • 1粉丝

至尊账号

已卖:447份资源

教授

18%

还不是VIP/贵宾

-

威望
0
论坛币
1020855 个
通用积分
150.4557
学术水平
4 点
热心指数
3 点
信用等级
2 点
经验
14262 点
帖子
362
精华
0
在线时间
1918 小时
注册时间
2006-5-12
最后登录
2026-1-30

楼主
shawfee 发表于 2014-12-17 16:13:22 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我的数据如下:其中,a2002、a2003、b2002、b2003、c2002、c2003、d2002、d2003列的数字均为字符型,想转化为数值型。
在SAS9.3中尝试通过如下命令:
data b;
    set a;
    a1=a2002+0;
    a2=a2002/1;
run;

但都不能实现,不知道该怎么办了?请各位大神帮忙,在此拜谢!



codename a2002a2003 b2002 b2003 c2002 c2003 d2002 d2003
000001.sz 平安银行 11201123 3457 1235 3246 5432 23451234
000001.sz 平安银行 1123 435.0005409 4321.00 4320.99 4321.00 5400.09 4378.00
000002.sz 万科A 4320.99870.78 6573.08 5432 643305432 54567 9554
000002.sz 万科A 5430 65749087.00 54325643 9860 6543 9870
000002.sz 万科A 5433 6543 876.980 1320 43216758 9087 7654
... ...
600001.sh 6543 7688 8889 54387123 7654.00 980.776754.00
600001.sh 3425 7654 765.987 54.0.000 4321.000 2356.000 8765.12 4352.09
... ...



二维码

扫码加我 拉你入群

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

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

关键词:字符转换 平安银行 Data code SAS9 如何

愛是恆久忍耐,又有恩慈;愛是不嫉妒;愛是不自誇,不張狂,不作害羞的事,不求自己的益處,不輕易發怒,不計算人的惡,喜歡不義,只喜歡真理;凡事包容,凡事相信,凡事盼望,凡事忍耐;愛是永不止息。

沙发
猎户星云 发表于 2014-12-17 16:20:46
sas没用过,但Excel里面把文本型的数字转为数值型,是*1,你试试

藤椅
shawfee 发表于 2014-12-17 16:38:29
猎户星云 发表于 2014-12-17 16:20
sas没用过,但Excel里面把文本型的数字转为数值型,是*1,你试试
ok,我试一下,不过在excel中列太多这样处理也很麻烦

板凳
shawfee 发表于 2014-12-17 17:12:12
shawfee 发表于 2014-12-17 16:38
ok,我试一下,不过在excel中列太多这样处理也很麻烦
还是不行呀,求高手解答

报纸
sushe1527 发表于 2014-12-17 17:20:10
这个就是字符的 绝对不能变成数值的

地板
sniperhgy 发表于 2014-12-17 17:23:16
不是高手,也来回答一下
用input函数将字符型变成数字型,例如
  1.   data _null_;
  2.     a = input("100.12", best.);
  3.     b = a + 1;
  4.     put b;
  5.   run;
复制代码
看一下log,不会出现那种“字符型变量转换成了数值型变量”的提示。

用楼主的那个方法,理论上是可以进行隐式转换的,但是会得到note,告诉说字符型变量被转成了数值型。如果说不行的话,估计是a2002里面有那种不能被转换的观测,比如a2002在某个obs里面其实是字符abc,空格之类的,所以如果说不行,请将log文件贴出来看一下,才能知道为何不行。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 5 + 3 + 3 + 3 用 input(col, ??best.) 防缺失情况

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

7
猎户星云 发表于 2014-12-17 17:23:26
怎么可能呢,楼主把原始文件贴上来看看

8
shawfee 发表于 2014-12-17 18:02:31
sniperhgy 发表于 2014-12-17 17:23
不是高手,也来回答一下
用input函数将字符型变成数字型,例如看一下log,不会出现那种“字符型变量转换成 ...
确实有空格之类的
这是log日志

NOTE: 变量 a2002 未初始化。
NOTE: 缺失值的生成是对缺失值执行操作的结果。
      指定每个位置的方式: (次数)(行:列)。
      458,位置: 1567:20。   458,位置: 1568:20。
NOTE: 从数据集 WORK.INST_WD2. 读取了 458 个观测
NOTE: 数据集 WORK.INST_W2 有 458 个观测和 159 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):


未初始化 什么意思?
新数据集中新变量都是缺失值”.“

9
shawfee 发表于 2014-12-17 18:03:34
sushe1527 发表于 2014-12-17 17:20
这个就是字符的 绝对不能变成数值的
为什么呢?里面有数值也有缺失值,始终不能转换?

10
shawfee 发表于 2014-12-17 18:07:21
猎户星云 发表于 2014-12-17 17:23
怎么可能呢,楼主把原始文件贴上来看看
在excel中变量*1,再导入SAS中确实仍然是字符

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-3 05:33