Alter Table和Update的SAS IML等价物

Alter Table和Update的SAS IML等价物,sas,alter-table,sas-iml,update-statement,Sas,Alter Table,Sas Iml,Update Statement,要向现有SAS数据集添加新列,我在proc sql中使用Alter Table语句(以及Update语句,用于填充新列),对吗?如果是这样的话,proc iml中的等价语句是什么(或者它甚至可以在iml中实现)?听起来你在问关于水平凹面的问题。如果两个矩阵的行数相同,则可以使用串联运算符(| |)将一个矩阵的列附加到另一个矩阵。例如,下面的语句将2x1向量连接到2x3矩阵。结果是一个2x4矩阵: proc iml; x = {1 2 3, 4 5 6}; y = {7, 8}; z =

要向现有SAS数据集添加新列,我在proc sql中使用Alter Table语句(以及Update语句,用于填充新列),对吗?如果是这样的话,proc iml中的等价语句是什么(或者它甚至可以在iml中实现)?

听起来你在问关于水平凹面的问题。如果两个矩阵的行数相同,则可以使用串联运算符(| |)将一个矩阵的列附加到另一个矩阵。例如,下面的语句将2x1向量连接到2x3矩阵。结果是一个2x4矩阵:

proc iml;
x = {1 2 3,
     4 5 6};
y = {7, 8};
z = x || y;
print z;

但是,请注意,这会分配一个新的矩阵(z),并复制x和y矩阵的内容。因此,它不如从一开始创建4x2矩阵,然后使用下标填充列那样有效。有关详细信息,请参阅文章

IML实际上没有“数据集”的概念,它有一个矩阵。你能举个例子说明你的问题吗?现在你问的问题不止一个。您是否专门问了IML问题,其余的只是无关信息?就我个人而言,我不会使用ALTER table和Update向表中添加变量。我将创建一个新表,其中包含旧表中所需的变量,并合并或计算新变量。在IML中,我也会做同样的事情。通过将旧矩阵连接到具有兼容维度的新矩阵来创建新矩阵。如何确保连接的新表中的值与旧数据集中的相应值对齐?我尝试的是将单列矩阵的内容写入现有数据集中的新列中。在IML中是否有这样做的方法(以便新内容与数据集现有列中的相应值对齐)?在SAS中,您需要创建一个新的数据集。无法将变量添加到现有数据集中。