Я хочу определить строку в PROC IML
, скажем, "ааааа" (пять "а"). На этапе DATA
я бы использовал функцию repeat()
, которая создает строку, повторяющую подстроки, как описано в документацию.
data _null_;
x=repeat('a',4); /* string with five 'a' */
put x;
run;
Однако в SAS/IML функция repeat()
отличается: она создает матрицу, повторяющую элементы другой (документация здесь). Итак, если я использую эту функцию, я получу вектор с пятью элементами «а».
proc iml;
x=repeat('a',5); /* 5 'a' strings */
print x;
quit;
В этом примере я, очевидно, мог не беспокоиться и сразу перейти к :
x="aaaaa";
Но что, если мне нужна строка большего размера (например, 100 "a")? Я также мог бы создать его за пределами PROC IML
и импортировать его позже, но должен быть более умный способ решить проблему, не так ли?