SAS中文论坛
标题:
Proc format + macro求助
[打印本页]
作者:
gogotiger
时间:
2014-5-13 04:53
标题:
Proc format + macro求助
有个data a 如下是部分例子, var有28个distinct值(char),每个值有对应的不同的 ind(indicator)和不同的val(value),现在我想把var用 val 替换掉,用proc format的方式替换(之所以一定要用 proc format 是因为将来需要时使用会很简单). 可能要用到macro.
data a;
input var $ ind $ val;
cards;
V1 1 10
V1 2 15
V1 3 20
V1 4 25
V2 T 1
V2 M 2
V3 0 30
V3 1 31
V3 2 32
. . .
V28 C 1
V28 N 5
;
run;
最后的结果如下, 如果把新的var变成numeric就更好了。
data new;
var ($) ind $ val;
10 1 10
15 2 15
20 3 20
25 4 25
1 T 1
2 M 2
30 0 30
31 1 31
32 2 32
. . .
1 C 1
5 N 5
;
run;
谢谢!
作者:
mono
时间:
2014-5-13 09:25
set一下,=一下, input一下 ,就行了吧,proc format,不改变数据的具体值,只是一层衣服。
作者:
slash
时间:
2014-5-13 14:19
data new;
set a(drop=var);
var=val;
run;
这是不是你想要的结果?
作者:
gogotiger
时间:
2014-5-13 21:47
本帖最后由 gogotiger 于 2014-5-13 21:51 编辑
不是,我希望用proc format + macro 来实现。之所以要用proc format是因为将来可以很简单的运用。比如说有个原始数据的变量里面含有部分var里的值。
e.g.
data two;
input v1 $ v2 $......; /*v1,v2,...are the values of var in data a*/
cards;
2 T ....
1 M ....
....
;
run;
作者:
gogotiger
时间:
2014-5-13 22:04
mono 发表于 2014-5-13 09:25
set一下,=一下, input一下 ,就行了吧,proc format,不改变数据的具体值,只是一层衣服。 ...
'proc format,不改变数据的具体值'这个倒是真的,原来是想先把值用proc format变过来,然后改变data并重新用新变量赋值,这个想法是源于一篇未发表的paper, 看来并不这么简单,得想其他办法.
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2