Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops SA根据10个现有变量创建10个新变量,并使用do循环 我有一个PAR文件,有10个变量:Q1-Q10,其值在0-1范围内。 我需要为每个变量q1、q2、q3创建。。。一个新变量,将根据以下范围接收1-5的值 0_Loops_If Statement_Sas - Fatal编程技术网

Loops SA根据10个现有变量创建10个新变量,并使用do循环 我有一个PAR文件,有10个变量:Q1-Q10,其值在0-1范围内。 我需要为每个变量q1、q2、q3创建。。。一个新变量,将根据以下范围接收1-5的值 0

Loops SA根据10个现有变量创建10个新变量,并使用do循环 我有一个PAR文件,有10个变量:Q1-Q10,其值在0-1范围内。 我需要为每个变量q1、q2、q3创建。。。一个新变量,将根据以下范围接收1-5的值 0,loops,if-statement,sas,Loops,If Statement,Sas,0.2

0.22 等等

最终,对于每个q,应该有一个新列,该列应该是一个附加列,其值为1-5

我已经设法为一个变量创建了它,但是如何才能以更有效的方式为所有10个变量创建它呢

 data PAR1; set PAR;
if q1>0 and q1<0.2 then do; qq1=1;end;
if q1>0.2 and q1<0.4 then do; qq1 =2;end;
if q1>0.4 and q1<0.6 then do; qq1=3;end;
if q1>0.6 and q1<0.8 then do; qq1=4;end;
if q1>0.8 and q1<1 then do; qq1=5;end;
run;
proc print data=PAR1;
run;
可以使用数组

数据par1; 设定标准杆; 阵列q{*}q1-q10; 数组qq{10}; i=1到dimq; 如果0 这将通过它们在数组中的索引(即位置)遍历所有变量。所以q[2]引用了q2等等。对于每个变量,将根据您提供的逻辑分配新变量


另一方面,请注意,您的逻辑中有不等式,但没有等式。例如,当q1=0.2时,这将导致缺少值。

您确定您的数据边界上没有任何值吗?现在,如果将该值解释为0.2,则可能会缺少一个值。