SAS中文论坛

标题: 如何将变量名编程观测值 [打印本页]

作者: shiyiming    时间: 2010-9-8 20:34
标题: 如何将变量名编程观测值
数据集是
变量名 a1 a2 a3 a5........ a10
            1   0    3  1 ..........7
            3    0   5   0..........6

如果某一行某个变量不等于0,那么将这个变量名和变量名最后的数字输出在这一行,假如第一行只有a1 a5 a10不等于0,第一行变成:

1   0    3  1 ..........7  a1 1 a5 5 a10 10

先拜谢各位了。
作者: shiyiming    时间: 2010-9-10 00:18
标题: Re: 如何将变量名编程观测值
[code:19gvco7o]data raw;
    input a1 a2 a3 a4 a5;
datalines;
1 0 3 1 7
3 0 5 0 6
;

data raw(drop=i);
    length text $50;
    set raw;
    array a{*} a1-a5;
    do i=1 to dim(a);
        if a(i) ne 0 then text=catx(' ',text,vname(a(i)),i);
    end;
run;[/code:19gvco7o]
作者: shiyiming    时间: 2010-9-10 19:43
标题: Re: 如何将变量名编程观测值
先谢过,不过我想得到的不是一个TEXT里面 是a1 1 a5 5 a10 10 属于不同的变量名,求教大侠如何实现啊?
作者: shiyiming    时间: 2010-9-12 18:52
标题: Re: 如何将变量名编程观测值
没看懂
作者: shiyiming    时间: 2010-9-12 18:58
标题: Re: 如何将变量名编程观测值
您写的程序把a1 1 a5 5 a10 10 连在一起当成了一个字符串成为了一列,我想让他们成为6列,请问怎么实现?




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2