У меня есть что-то похожее на код ниже, я хочу создать каждую комбинацию из двух символов в моих строках, а затем подсчитать каждое из них и сохранить в таблице. Я буду менять оператор substr на цикл do для повторения всей строки. Но сейчас я просто хочу, чтобы первая пара символов работала;Создайте динамическое имя переменной SAS из строки
data temp;
input cat $50.;
call symput ('regex', substr(cat,1,2));
®ex = count(cat,substr(cat,1,2));
datalines;
bvbvbsbvbvbvbvblb
dvdvdvlxvdvdgd
cdcdcdcdvdcdcdvcdcded
udvdvdvdevdvdvdvdvdvdvevdedvdv
dvdkdkdvdkdkdkudvkdkd
kdkvdkdkvdkdkvudkdkdukdvdkdkdkdv
dvkvwduvwdedkd
;
run;
Ожидаемые результаты;
cat bv dv cd ud kd
#### 6
#### 4
#### 8
#### 1
#### 3
#### 9
#### 1
Я бы предпочел не использовать proc transpose, поскольку я не могу пройти через строку, чтобы создать все пары символов. Я должен будет вручную создать их, и у меня есть до 500 символов в строке, плюс я хотел бы искать 3 и 4 строковых шаблона.
Знаете ли вы имена потенциальных переменных раньше времени или это только обнаружено в первом чтении? Невозможно выполнить то, что вы хотите выше, но если вы заранее знаете имена, если вы можете создать эти переменные, а затем создать массив с ними, VNAME получит имя, которое имеет переменная, и вы можете выполнять итерацию по массиву. – Joe