楼主: B.N.F
3973 21

如何用Data步生成宏? [推广有奖]

11
chenys625 发表于 2013-1-26 23:58:18
B.N.F 发表于 2013-1-26 22:59
水平差,想不出来什么办法啊
file的话太慢了读写文件
多生成几个宏不可以么? 或者写成macro

12
B.N.F 发表于 2013-1-27 01:46:49
chenys625 发表于 2013-1-26 23:58
多生成几个宏不可以么? 或者写成macro
你的意思是把一段超过6000字符的代码分开然后赋值吗?

13
chenys625 发表于 2013-1-27 01:50:20
B.N.F 发表于 2013-1-27 01:46
你的意思是把一段超过6000字符的代码分开然后赋值吗?
%macro a;
你的代码;
%mend;

这样满足不了你的需求?

14
B.N.F 发表于 2013-1-27 03:34:33
chenys625 发表于 2013-1-27 01:50
%macro a;
你的代码;
%mend;
如何生成这样的macro呢
而不是自己写

15
ziyenano 发表于 2013-1-27 10:18:54
原文件的形式是什么样的?

16
chenys625 发表于 2013-1-27 12:45:16
B.N.F 发表于 2013-1-27 03:34
如何生成这样的macro呢
而不是自己写
这得看你具体的问题了,但是应该是可以实现的吧

17
B.N.F 发表于 2013-1-28 05:41:32
chenys625 发表于 2013-1-27 12:45
这得看你具体的问题了,但是应该是可以实现的吧
就是上面的,只不过超过六千字节

18
B.N.F 发表于 2013-4-3 01:58:02
..................................

19
zhengbo8 发表于 2013-4-3 16:00:14
下面是用data步,应该满足你的要求。
把一段SAS代码赋值给一个变量,再执行这个代码。
即可以使用data步模拟实现宏的效果。
  1. data _null_;

  2.     code=cat(
  3.         "data a",";
  4.             a=250;
  5.             d=512+215-a",";
  6.         run;"
  7.     );

  8.     call execute(code);

  9. run;
复制代码
楼主,求论坛币啊!

20
yuerqieqie 发表于 2013-4-11 21:29:20
B.N.F 发表于 2013-1-26 20:19
不分行的话,超过6000字符就不能执行了。。。
macro variable 里text应该不能超过64K bytes。不是很理解为什么分行就能执行,分行能改变字节数要求么?求教。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-20 02:10