Выполнение вычислений только для определенных столбцов в матрице в 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;

Возможно, вы также захотите взглянуть на операторы сокращения подстрочного индекса, а также на предложения Рика для сокращенной записи операций со строками и столбцами для получения дополнительной информации о связанных понятиях.

Другие вопросы по тегам