Преобразование набора данных в SAS для односторонней ановы - PullRequest
0 голосов
/ 31 января 2019

По сути, мне нужно изменить порядок данных.

Данные состоят из 4 столбцов, по одному для каждой группы лечения.Я пытаюсь запустить простую одностороннюю анову в SAS, но я не знаю, как изменить порядок данных, чтобы было два столбца, один с ответами, а другой с обработками.

Вотпример кода для создания примеров наборов данных.

data have;
input A B C D;
cards;
26.72 37.42 11.23 44.33
28.58 56.46 29.63 76.86
29.71 51.91 . .
;
run;
data want;
input Response Treatment $;
cards;
26.72 A
28.58 A
29.71 A
37.42 B
56.46 B
51.91 B
11.23 C
29.63 C
44.33 D
76.86 D
;
run;

Я уверен, что это очень простое решение, но я не видел того же, что спрашивали в другом месте на сайте.Обычно я пользователь R, но мне нужно использовать SAS для этого анализа, чтобы я мог искать неправильные ключевые слова.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Если это ваши данные, для которых вы должны использовать SAS, просто прочитайте, чтобы получить структуру, необходимую для ANOVA.

data have;
   do rep=1 to 3;
      do trt='A','B','C','D';
         input y @;
         output;
         end;
      end;
   cards;
26.72 37.42 11.23 44.33
28.58 56.46 29.63 76.86
29.71 51.91 . .
;;;;
   run;
proc print;
   run;
0 голосов
/ 31 января 2019

Я использовал proc transpose для этого, см. Ниже

/*1. create row numbers for each obs*/
data have1;
 set have;
 if _n_=1 then row=1;
 else row+1;
run;

proc sort data=have1; by row; run;

/*Transpose the dataset by row number*/
proc transpose data=have1 out=want0; 
by row;
run;

/*Final dataset by removing missing values*/
data want;
 set want0;
 drop row;
 if COL1=. then delete;
 rename _NAME_=Response
        COL1=Treatment;
run;    

proc sort data=want; by Response; run;

proc print data=want; run;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...