#sas
#sas
Вопрос:
Я просто хочу присвоить строку матрицы вектором в процедуре iml, но она возвращает ошибку. Код выглядит следующим образом, как я могу это исправить?
proc iml;
za=repeat(0,4,3);
a=123;
b=321;
c=222;
za[1,]={a,b,c};
run;
print(za);
proc print;run;
Ответ №1:
В вашем коде есть несколько проблем. {x, y, z} — вектор столбца. {x y z} — вектор строки. Это означает, что вы пытаетесь вставить столбец в строку. Кроме того, синтаксис немного не в порядке.
Используя свой собственный код, вы можете это сделать.
proc iml;
za=repeat(0,4,3);
a=123;
b=321;
c=222;
za[1,] = a || b || c;
print(za);
quit;
Более простым способом было бы
proc iml;
za = j(4, 3, 0);
v = {123 321 222};
za[1, ] = v;
print za;
quit;