Выполнение вычислений только для определенных столбцов в матрице в SAS IML
Мне нужно создать в IML матрицу с несколькими столбцами и выполнить некоторые вычисления только для некоторых столбцов (значения в одном столбце не должны изменяться). Например, мне нужно умножить один столбец на другой поэлементно. Какой синтаксис для этого?
1 ответ
Решение
Вы делаете это, ссылаясь на номер столбца, который вы хотите изменить в левой части знака равенства.
Например:
proc iml;
x = {1 2,
3 0,
5 4};
y = {1,
2,
3};
x[,1] = x[,1] # y;
print x;
quit;
Как отметил Рик в комментариях, вы также можете умножить столбец 1 из x на столбец 2:
proc iml;
x = {1 2,
3 0,
5 4};
x[,1] = x[,1] # x[,2];
print x;
quit;
Возможно, вы также захотите взглянуть на операторы сокращения подстрочного индекса, а также на предложения Рика для сокращенной записи операций со строками и столбцами для получения дополнительной информации о связанных понятиях.