楼主: 梦妮朵1
1791 18

[问答] 求帮助,在线等 [推广有奖]

11
梦妮朵1 发表于 2012-7-5 18:47:38 |只看作者 |坛友微信交流群
ziyenano 发表于 2012-7-5 17:31
如果不添加新变量,后来的字符格式需要覆盖之前的数值格式,应该实现不了;
用sql的话应该可以;
proc sq ...
谢谢您。
您的这种方法是把evntdum改成字符型的,但是原来的数据集就没了,找不到了??

使用道具

12
yanan9256 发表于 2012-7-6 11:40:37 |只看作者 |坛友微信交流群
梦妮朵1 发表于 2012-7-5 15:27
这个我知道啊,但是变量下面有两个值,这个怎么转化
举个例子 不知道是不是你想要的
  1. data a;
  2. input a ;
  3. cards;
  4. 1
  5. 2
  6. 1
  7. 2
  8. 1
  9. 1
  10. 2
  11. ;
  12. run;

  13. data b;
  14. set a;
  15. b=put(a,$8.) ;
  16. if a=1 then b="NEG";
  17. if a=2 then b="POS";
  18. output;
  19. run;
复制代码

使用道具

13
yanan9256 发表于 2012-7-6 11:44:01 |只看作者 |坛友微信交流群
ziyenano 发表于 2012-7-5 17:31
如果不添加新变量,后来的字符格式需要覆盖之前的数值格式,应该实现不了;
用sql的话应该可以;
proc sq ...
对啊 我实验了一下
  1. data a;
  2. input x;
  3. cards;
  4. 1
  5. 1
  6. 1
  7. ;
  8. run;
  9. data b;
  10. set a;
  11. x=put(x,$1.);
  12. run;
复制代码
这样确实是不行的
WARNING: 变量 x 已定义为数值型。
查看数据集属性,x依然是数值型的。

使用道具

14
zhangzachary 发表于 2012-7-6 13:13:19 |只看作者 |坛友微信交流群
同一个变量在同一个数据集里想改变数字型字符型是不可能的。不过proc format可以帮助你把数字型变量用“字符型”的format输出:
proc format;
  value change 1="NEG"
                     2="POS"
  ;
run;

data yourdata;
set yourdata;
format evntdum change.;
run;
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

使用道具

15
梦妮朵1 发表于 2012-7-6 19:24:58 |只看作者 |坛友微信交流群
yanan9256 发表于 2012-7-6 11:44
对啊 我实验了一下这样确实是不行的
WARNING: 变量 x 已定义为数值型。
查看数据集属性,x依然是数值型 ...
确实是,变量x被定义为数值型的了

使用道具

16
梦妮朵1 发表于 2012-7-6 19:28:20 |只看作者 |坛友微信交流群
zhangzachary 发表于 2012-7-6 13:13
同一个变量在同一个数据集里想改变数字型字符型是不可能的。不过proc format可以帮助你把数字型变量用“字符 ...
恩,谢谢您。问题还是不能解决,程序后面要用到字符型的evntdum

使用道具

17
zhangzachary 发表于 2012-7-10 10:08:21 |只看作者 |坛友微信交流群
梦妮朵1 发表于 2012-7-6 19:28
恩,谢谢您。问题还是不能解决,程序后面要用到字符型的evntdum
那就用format+put+rename+drop
  1. data yourdata;
  2.   set yourdata;
  3.   length _evntdum $3;
  4.   _evntdum=put(evntdum,change.);
  5.   drop evntdum;
  6.   rename _evntdum=evntdum;
  7. run;
复制代码
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

使用道具

18
梦妮朵1 发表于 2012-7-10 21:26:44 |只看作者 |坛友微信交流群
zhangzachary 发表于 2012-7-10 10:08
那就用format+put+rename+drop
谢谢,解决了

使用道具

19
pl172231 发表于 2012-7-11 11:38:23 |只看作者 |坛友微信交流群
你的问题根源在于evntdum这个变量被sas设定成数值型了,你可以重新设定一个变量,length evntdum1$ 6; 把evntdum的值赋给新变量,再通过型变量做

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-19 19:33