我是否正确,要向现有的 SAS 数据集添加新列,我在 proc sql 中使用 Alter Table 语句(并且,为了填充新列,使用 Update 语句)?如果是这样,proc iml 中的等效语句是什么(或者甚至可以在 IML 中完成)?
问问题
286 次
1 回答
0
听起来你在问水平连接。您可以使用串联运算符 (||) 将一个矩阵的列附加到另一个矩阵,前提是两个矩阵具有相同的行数。例如,以下语句将 2x1 向量连接到 2x3 矩阵。结果是一个 2x4 矩阵:
proc iml;
x = {1 2 3,
4 5 6};
y = {7, 8};
z = x || y;
print z;
但是请注意,这会分配一个新矩阵 (z) 并复制 x 和 y 矩阵的内容。因此,它不如从头创建一个 4x2 矩阵然后使用下标填充列那样有效。有关详细信息,请参阅文章“朋友不要让朋友在循环内连接结果”。
于 2015-11-06T15:17:41.990 回答