SAS中文论坛
标题:
请教sas数据集中的数据类型转换问题?
[打印本页]
作者:
shiyiming
时间:
2005-1-18 12:45
标题:
请教sas数据集中的数据类型转换问题?
一个sas数据集中有一个变量a;是数值型的,我想要把它转换为字符型的应该怎么做?不能在数据集中增加新的变量,应该怎样转换呢?
作者:
shiyiming
时间:
2005-1-18 14:24
标题:
基本就是这样
data a;
input x;
cards;
1
2
3
;
run;
data a;
set a;
y=x||'';
keep y;
rename y=x;
run;
作者:
shiyiming
时间:
2005-1-18 15:37
标题:
感谢
非常感谢:)
作者:
shiyiming
时间:
2005-1-18 15:56
标题:
再请教一下
请问 y=x || ''是什么意思,如果我想对y变量的长度做一下限制,如3个字符那么长应该怎么来做啊,文档上哪里有将这段内容的呀?
作者:
shiyiming
时间:
2005-1-18 19:54
标题:
呵呵
这是让SAS强制转化。
要限制长度就先加一个
length y $3. 在set 语句前面。
作者:
shiyiming
时间:
2005-1-18 23:29
标题:
have a try
data a;
input x;
cards;
1
2
3
;
run;
data a(keep=x) ;
set a(rename=x=y);
x=put(y, 3.);
run;
像这种转化变量类型的情况,最好是重新生成一个新的DATASET,或者生成新的变量,因为别人或者别的程序可能已经使用原来的变量类型了。
作者:
shiyiming
时间:
2005-1-19 09:00
标题:
感谢
谢谢两位,问题已解决:)
作者:
shiyiming
时间:
2005-1-19 09:34
标题:
请教
如果要将字符型变量转换为数值型,又应该怎么做呢?是不是还是用put函数啊?,我不知道该用那个format,试了好几个都不行
作者:
shiyiming
时间:
2005-1-19 10:08
标题:
to xlbjgjsh
data a;
input x $;
datalines;
1
2
3
;
run;
data b(keep=x);
set a(rename=x=y);
x=input(y,8.);
run;
proc contents data=b;
run;
作者:
shiyiming
时间:
2005-1-19 14:43
标题:
进一步的问题
data a;
input x $
y 2.
z $;
datalines;
1 1 1
2 2 2
3 3 3
;
run;
我要将其中的x转换为数值型,y转换为字符型,z不变。转换完成生成的数据集应该怎么做呢。仍然是x,y,z三列?
作者:
shiyiming
时间:
2005-1-19 14:52
标题:
补充
转换完成后数据集a仍保持原来的顺序,即x y z这样
作者:
shiyiming
时间:
2005-1-20 02:43
标题:
have a try
data b;
retain x y z ;
set a(rename=(x=x1 y=y1));
x=input(x1,?? 8.);
y=put(y1,?? 8.) ;
keep x y z ;
run;
proc contents data=b;
run;
proc print data=b;
run;
作者:
shiyiming
时间:
2005-1-20 11:12
标题:
感谢
非常感谢您smartie:)
作者:
shiyiming
时间:
2005-2-4 14:00
标题:
还是这个问题
按照上面的意思,如果我只要改动一个包含很多变量的dataset中的一个变量的数据类型,是否一定要将所有的别的变量都retain keep. 好麻烦,从外部文件比如excel文件转过来的dataset改变变量属性是很经常的事,是不是每次都要这么做,有没更好更直观的办法
作者:
shiyiming
时间:
2005-2-5 14:33
标题:
请教
还有,有没有比较快捷的方法对数据集做一些简单的操作,比如挪动变量位置
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2