Не используйте одно и то же имя набора данных в операторах SET и DATA.Это затрудняет отладку, потому что вы уничтожили исходный набор данных.
Вы не можете изменять типы на лету в SAS.Если переменная - символ, она остается символом.
Если переменная числовая, вы назначаете значения без кавычек, кавычки используются для символьных переменных.
Ваша попытка создать категориальную переменную не имеет смысла, учитывая тот факт, что она уже равна 0/1.Убедитесь, что ваши тестовые данные отражают вашу реальную ситуацию.
Я не знаком с PROC TRANSREG, поэтому я не могу комментировать эту часть, но это те проблемы, с которыми вы сталкиваетесь сейчас.
Как уже упоминал кто-то, SAS не является матричным языком, он обрабатывает данные построчно, а это означает, что он может обрабатывать действительно очень большие наборы данных, поскольку ему не нужно загружать их в память.
Ваш набор данных matrixTest по сути является набором данных и готов к работе.Вам не нужно преобразовывать его в матрицу или «инициализировать» его.
Если вам нужен набор данных с этими значениями, то создайте его как набор данных:
data mx;
input var1-var3;
cards;
5 4 3
4 0 4
7 10 3
;
run;