【发布时间】:2018-02-01 18:09:52
【问题描述】:
%let var_list = n1 n2 n3;
data A;
call streaminit(123); /* set random number seed */
do i = 1 to 100;
n1 = rand("Normal");
n2 = rand("Normal");
n3 = rand("Normal");
output;
end;
run;
假设我要根据宏变量“&var_list”过滤一个数据集,过滤宏变量中每个值都大于0的所有数据。 宏应该怎么写?
感谢您的帮助!
【问题讨论】:
-
'宏变量中的每个值都大于0',你的意思是数据集中的每个变量都大于0吗?您的宏变量是字符。为什么要宏?数组是一种更好的方法,您想要什么作为输出。如果 N10,那条记录会被删除吗?
-
天哪,我怀念
marco的日子。您能否使用实际值重述问题,显示数据集拥有,然后显示您想要的。然后显示您使用过或试图从中获取的非宏观纯 SAS 代码。只有到那时,谈论马可才是现实的或愚蠢的。 -
您的意思是要查找 N1、N2 和 N3 均为正数的记录吗?
if n(of n1 n2 n3)=3 and min(of n1 n2 n3)>0;