l*****8 发帖数: 483 | 1 我有一个macro test, 一个dataset, 变量为V1, 如下。
我想在读每行数据的时候, V1里面的值(4,6,7)可以在%test(count) 里得到。 如果用
&test(v1), 那macro里 count的值只是 ‘V1’, 而不是 4。 请问如何能把4 放进去。
非常感谢。
%marcro test(count);
.....
%mend;
v1
4
6
7 |
s*******e 发帖数: 1385 | 2 没看懂你要干什么
果用
去。
【在 l*****8 的大作中提到】 : 我有一个macro test, 一个dataset, 变量为V1, 如下。 : 我想在读每行数据的时候, V1里面的值(4,6,7)可以在%test(count) 里得到。 如果用 : &test(v1), 那macro里 count的值只是 ‘V1’, 而不是 4。 请问如何能把4 放进去。 : 非常感谢。 : %marcro test(count); : ..... : %mend; : v1 : 4 : 6
|
s******8 发帖数: 102 | 3 我想你是吧macro变量和data变量弄混了。V1应该是数据变量,你要把它的值赋给宏变
量。这要看你究竟打算做啥。
比如:
data test;
input v1;
cards;
4
6
;
%test(v1);
run;
如上就会把4,6传给count。只是不知你宏内要怎样用
count的值,以及产生啥结果。 |
l*****8 发帖数: 483 | 4 当我用 %test(v1)的时候, macro 里 &count的值不是 v1的值4,6,7, 而是字母串 ”
V1"。
我的问题就是如何把 4,6,7 带到 macro里, 然后 macro 用 4.6,7来进行其他的运
算。
ta test;
input v1;
cards;
4
6
;
%test(v1);
run;
如上就会把4,6传给count。只是不知你宏内要怎样用.
【在 s******8 的大作中提到】 : 我想你是吧macro变量和data变量弄混了。V1应该是数据变量,你要把它的值赋给宏变 : 量。这要看你究竟打算做啥。 : 比如: : data test; : input v1; : cards; : 4 : 6 : ; : %test(v1);
|
D******n 发帖数: 2836 | 5 这样扭扭捏捏,人家是很难回答你问题的。如果你不想人家知道你问题所可能暴露的秘
密信息,你就要花点努力,造出一个跟你问题相仿的而重要信息又被替换掉的例子。就
这样。
一个评判标准就是,人家copy你得code,到sas下面,可以run.
果用
去。
【在 l*****8 的大作中提到】 : 我有一个macro test, 一个dataset, 变量为V1, 如下。 : 我想在读每行数据的时候, V1里面的值(4,6,7)可以在%test(count) 里得到。 如果用 : &test(v1), 那macro里 count的值只是 ‘V1’, 而不是 4。 请问如何能把4 放进去。 : 非常感谢。 : %marcro test(count); : ..... : %mend; : v1 : 4 : 6
|
P****D 发帖数: 11146 | 6 出现这种说明你的宏写的有问题。写得对的宏,本来就应该是把V1的值4,6,7传过去。
【在 l*****8 的大作中提到】 : 当我用 %test(v1)的时候, macro 里 &count的值不是 v1的值4,6,7, 而是字母串 ” : V1"。 : 我的问题就是如何把 4,6,7 带到 macro里, 然后 macro 用 4.6,7来进行其他的运 : 算。 : : ta test; : input v1; : cards; : 4 : 6
|
l*****8 发帖数: 483 | 7 对不起各位, 我没解释清楚, 下面是个例子, 如果读第一个数据4, macro要重复写
4 遍 put '123', 然后读6,重复写6遍 put '123'. 以此类推。。。
谢谢。
%macro test(count);
%do i=1 %to &count;
put '123';
%end;
%mend;
data aaa;
input v1;
cards;
4
6
7
;
data bbb;
set aaa;
%test(v1);
run; |
b******e 发帖数: 445 | |
s*********e 发帖数: 1051 | 9 there is an error in your code.
here is the solution.
%macro test(count);
%do i=1 %to &count;
%put '123';
%end;
%mend;
data aaa;
input v1;
cards;
4
6
7
;
data bbb;
set aaa;
call execute('%test('||v1||');');
run; |
l*****8 发帖数: 483 | 10 非常感谢楼上几位。。
【在 s*********e 的大作中提到】 : there is an error in your code. : here is the solution. : %macro test(count); : %do i=1 %to &count; : %put '123'; : %end; : %mend; : data aaa; : input v1; : cards;
|
s*********e 发帖数: 1051 | 11 包子
【在 l*****8 的大作中提到】 : 非常感谢楼上几位。。
|
l*****8 发帖数: 483 | 12 谢谢。
转帐完成
转给用户:statcompute,现金(伪币):100,收取手续费:1.00
【在 s*********e 的大作中提到】 : 包子
|