数组中的数据集值

时间:2019-06-18 15:53:04

标签: sas

我是SAS新手,我希望将数据线值存储在数组中 我希望将10 20 30存储在一个数组中

enter code here
data array;
input num 2.;
array arr[3] a1-a3;
datalines;
10
20
30
;
run;
proc print data=array;

预期值是a1 = 10; a2 = 20; a3 = 30;

2 个答案:

答案 0 :(得分:1)

目前尚不清楚您要做什么。

有可能:

data array;
array arr{*} a1-a3;
do i=1 to 3;
    arr{i}=10*i;
end;
output;
drop i;
run;

proc print data=array;
run;

请注意,您无法在数据步骤之后打印数组的值,因此,如果要打印值,它们必须位于 dataset array中,或者位于列或一行。在这里,数组映射到变量 a1,a2,a3,然后使用循环对其进行设置(cards语句也可以,但是为什么要使用数组?),因此结束数据集中只有一行。

建议阅读:Using Arrays in SAS Programming

答案 1 :(得分:1)

数组不是SAS中的对象。您可以创建数据集,也可以创建宏变量。我怀疑您是SAS的新手,所以建议您暂时不要使用宏,而应该现在就使用数据步骤和SQL。

您可以使用值创建数据集,并在以后使用它们。如果您解释以后要使用它们的方式,我们可能会建议适当的数据结构。

如果您确实想要数组和矩阵,则需要使用PROC IML来具有与Base SAS完全不同且与R / Python更相似的功能。

data array;
infile cards missover;
input a b c 2.;
datalines;
10 20 30
;
run;