#sas
#sas
Вопрос:
Я хочу создать простой набор данных слева, чтобы он стал набором данных справа. Для V1, 1,2,3 есть три значения. И я хочу присвоить это каждому из идентификаторов.
Ответ №1:
Нет проблем. Сделайте это
data have;
input id;
datalines;
1
2
;
data want;
set have;
do _N_ = 1 to 3;
v1 = put(_N_, z2. -l);
output;
end;
run;
Комментарии:
1. Обратите внимание, что в
-L
модификаторе спецификации формата нет необходимости. Не требуется удалять начальные пробелы, сгенерированные форматом Z.2. Большое вам спасибо! Я не знал, что у меня может быть три параметра в функции PUT (). И я всегда использую $ 2. вместо z2., может быть, это вызвало разницу?
3.
-L
является частью спецификации формата, а не отдельным параметром функции. Формат $ 2 предназначен для символьных данных. Обычный формат 2. (или один из его псевдонимов, например, F2.) предназначен для числовых данных.
Ответ №2:
Попробуйте это
data have;
input id;
datalines;
1
2
;
data want;
set have;
do v1 = 1 to 3;
output;
end;
run;
Комментарии:
1. Большое вам спасибо!
2. Что, если я хочу, чтобы V1 был «00», «01», «02» вместо этого?
3. Вы хотите, чтобы V1 был символом? Просто напечатать числа ровно из двух цифр, которые включают начальный ноль при значениях меньше 10?