楼主: liyunq
1443 5

[问答] 初学者遇到一个小问题 [推广有奖]

  • 1关注
  • 0粉丝

初中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
15 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
138 点
帖子
20
精华
0
在线时间
10 小时
注册时间
2010-8-27
最后登录
2013-1-29

楼主
liyunq 发表于 2012-9-19 04:37:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我给一个变量赋值为某个数字,然后再给这个变量赋值为字符串,最终显示是缺失值;
但为什么我先赋值为字符型,然后再赋值为数字型,最终显示的是第二次赋给的数字呢?
二维码

扫码加我 拉你入群

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

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

关键词:初学者 小问题 缺失值 字符型 字符串 初学者

沙发
liyunq 发表于 2012-9-19 04:39:11
我的这个问题是在SAS编程的时候遇到的。

藤椅
pobel 在职认证  发表于 2012-9-19 05:57:59
首先变量的类型是在data步中变量最早出现时决定的。也就是说,如果先赋值给一个数字,那这个变量就是数值型,反之则为字符型。

其次,如果将字符串赋值给数值型变量,或是将数字赋值给字符型变量,则会有数据类型的自动转化。如果不能转过去(例如“abc”不能转化为数字)则会出现空值。

data test;
    *** X is a numeric variable;
    x=1;
        *--- This is okay;
        x="123";
        put x=;
    *--- This is not okay;
        x="haha";
        put x=;

        *** Y is a character variable;
        y="ABCDEFG";
        *--This is okay;
        y=222;
        put y=;

run;
       
已有 1 人评分学术水平 收起 理由
guo.bailing + 5 分析的有道理

总评分: 学术水平 + 5   查看全部评分

和谐拯救危机

板凳
guo.bailing 发表于 2012-9-19 12:06:23
pobel 发表于 2012-9-19 05:57
首先变量的类型是在data步中变量最早出现时决定的。也就是说,如果先赋值给一个数字,那这个变量就是数值型 ...
楼上正解
自助者,天助之!

报纸
good_speed 发表于 2012-10-6 18:49:41
是否可以理解为,某些字符型的变量是无法自动转化为数值型变量

地板
Jacobi123 发表于 2012-10-8 10:44:20
good_speed 发表于 2012-10-6 18:49
是否可以理解为,某些字符型的变量是无法自动转化为数值型变量
那是,比如你在一个数值变量上输入一个'abc',sas是无法识别的。就会默认为缺失。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 13:50