2016-12-23 23 views
0
proc iml; 
use rdata3; 
read all var _all_ into pp; 
close rdata3; 
do i = 1 to 1050; 
    perms = allperm(pp[i, ]); 
    create pp&i from perms[colname= {"Best" "NA1" "NA2" "Worst"}]; 
    append from perms; 
    close pp&i; 
end; 

Я хотел бы создать несколько наборов данных в SAS, используя приведенный выше код через цикл do. Однако я не могу изменить название каждого набора данных, используя индикатор & i. Может ли кто-нибудь помочь мне изменить свой код, чтобы позволить мне создавать несколько наборов данных? Или есть ли другие альтернативы, как создавать несколько наборов данных из матрицы через циклы? Заранее спасибо.Как создать несколько наборов данных в SAS с использованием петель

ответ

2

Вы не хотите использовать макропеременные, которые вы хотите использовать в IML. Однако вы будете создавать множество наборов данных.

data rdata3; 
    x = 1; 
    y = 2; 
    a = 4; 
    b = 5; 
    output; 
    output; 
    run; 
proc iml; 
    use rdata3; 
    read all var _all_ into pp; 
    close rdata3; 
    do i = 1 to nrow(pp); 
     outname = cats('pp',putn(i,'z5.')); 
     perms = allperm(pp[i, ]); 
     create (outname) from perms[colname= {"Best" "NA1" "NA2" "Worst"}]; 
     append from perms; 
     close (outname); 
     end; 
    quit; 

Вы можете добавить переменную ID в PERMS и добавить все версии PERMS в один набор данных. Я не уверен, что использовал наилучшую технику IML, я знаю, что достаточно, чтобы IML был опасен.

proc iml; 
    use rdata3; 
    read all var _all_ into pp; 
    close rdata3; 
    perms = j(1,5,0); 
    create PP_out from perms[colname= {'ID' "Best" "NA1" "NA2" "Worst"}]; 
    do i = 1 to nrow(pp); 
     perms = allperm(pp[i, ]); 
     perms = j(nrow(perms),1,i)||perms; 
     append from perms; 
     end; 
    close PP_out; 
    quit; 
+1

Я согласен с данными_null_. Возможно, вы захотите добавить переменную идентификатора к каждому набору перестановок, а затем написать один набор данных, содержащий все данные. Затем вы можете проанализировать данные с помощью обработки по группам. – Rick

+0

Что я должен использовать для объединения нескольких наборов данных в единый набор данных? Я думаю, что это лучшая идея. – Sopon

+0

Большое спасибо! Сможете ли вы помочь мне с другим вопросом, который я разместил? – Sopon

 Смежные вопросы

  • Нет связанных вопросов^_^