Как взять среднее значение всех переменных (отдельно) на основе индикаторной переменной в SAS - PullRequest
0 голосов
/ 23 марта 2020

У меня есть набор данных, содержащий, скажем, 100 переменных, и я хочу взять среднее значение всех переменных отдельно на основе индикаторной переменной, указывающей, какие значения взять среднее значение. Итак, у меня есть следующее:

Id   Var1    Var2     Var3  Take_Avg
1    …        …        …        1
2    …        …        …        2
3    …        …        …        3
4    …        …        …        9999
5    …        …        …        9999
6    …        …        …        9999
7    …        …        …        7
8    …        …        …        8
9    …        …        …        99999
10   …        …        …        99999
11   …        …        …        99999
12   …        …        …        99999
13   …        …        …        99999
14   …        …        …        14
15   …        …        …        15

Так что для id1 мне просто нужны значения Var1, 2 и 3 (так как среднее значение даст то же значение, которое у меня уже есть). Для id 4 до 6 мне нужны средние значения Var1, 2 и 3 отдельно.

Я пытался создать это и взять среднее значение всех переменных в операторе Group By, но я не знаю как. Есть ли способ сделать это?

Мои желаемые результаты выглядят так:

Id   avg(Var1)      avg(Var2)     avg(Var3) 
1      …             …              …       
2      …             …              …      
3      …             …              …       
4      avg(id 4-6)   avg(id 4-6)    avg(id 4-6)
7      …             …              …      
8      …             …              …       
9      avg(id 9-13)  avg(id 9-13)   avg(id 9-13)
14     …             …              …       
15     …             …              …       

Спасибо, ребята, заранее!

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

с SAS вы можете использовать процедуру pro c означает , эта процедура в основном используется для вычисления описательной статистики, такой как среднее значение, медиана, число, сумма и т. Д. c.

в вашем случае код похож на:

Proc Means data = your_data_set MEAN;
 Class ID;
 Var var1 - var3;
 Output out = your_output_data_set mean= /autoname;
Run;

класс аналогичен группировке по.


var аналогичен переменным анализа.


output out - это опция для сохранения информации в некотором наборе данных.

ссылка подробного объяснения введите описание ссылки здесь

0 голосов
/ 23 марта 2020

Похоже, вы просто просите что-то вроде этого:

select take_avg
     , min(id) as new_id 
     , mean(var1) as mean_var1
     , mean(var2) as mean_var2
     , mean(var3) as mean_var3
from have
group by take_avg
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...