SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 659|回复: 3
打印 上一主题 下一主题

如何快速生成新变量?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-9-8 17:28:59 | 只看该作者

如何快速生成新变量?

如何根据已有数据集实现所有变量(很多)的转换,换算公式一样的,只是参数可能会有调整?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-9-8 21:20:42 | 只看该作者

Re: 如何快速生成新变量?

这是我的想法和做不下去的地方:
%macro yi(var);
    &var._yi=&var/(&var+0.4);
%mend yi;
data test1;
   set test;
    %yi(x1); %yi(x2); %yi(x3); %yi(x4);
   ............../**有很多变量,难以一一列出的!**/
run;

请哪位高手指点一二:先谢谢了!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-9-10 01:08:49 | 只看该作者

Re: 如何快速生成新变量?

Why you can't go on? Your code works fine.

[code:l5ea4s51]data temp;
input id gender $ instate age score @@;
cards;
01 M 1 30 56
02 F 1 23 63
03 M 0 25 85
04 F 0 25 97

;
run;

%macro yi(var);
&var._yi=&var/(&var+0.4);
%mend yi;
data temp;
set temp;
%yi(age);
%yi(score);
run;

proc print; run; [/code:l5ea4s51]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-9-11 08:30:13 | 只看该作者

Re: 如何快速生成新变量?

谢谢了。我是在一个接一个列出变量()因为变量太多)的时候遇到了困难。后来通过转置把变量名称生成新的变量,然后在用字符函数把要列的生成新的变量,然后用这个去做程序才实现的,虽然麻烦,倒也挺快的。呵呵
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 01:27 , Processed in 0.101852 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表