Я имею дело с набором данных повторных измерений в широком формате. Каждое наблюдение представляет собой одно измерение для одного объекта, и каждый объект измеряется шесть раз. Данные содержат в основном фиктивные переменные.
Я хочу подсчитать уникальные значения фиктивных переменных по всем шести наблюдениям для каждого предмета.
Иметь:
MeasurementNum SubjectID Dummy0 Dummy1 Dummy2 Dummy3 Dummy4
-----------------------------------------------------------------------------
1 1 1 1 0 0 0
2 1 0 1 0 1 0
3 1 - - - - -
4 1 0 0 1 1 0
5 1 - - - - -
6 1 0 0 0 1 0
1 2 1 0 0 1 0
2 2 0 0 0 0 0
3 2 0 1 0 0 0
4 2 1 1 0 1 0
5 2 - - - - -
6 2 1 1 1 0 0
Хотеть:
Total for Overall
MeasurementNum SubjectID ... MeasurementNUM Total
--------------------------------...-----------------------------
1 1 ... 2 4
2 1 ... 2 4
3 1 ... - 4
4 1 ... 2 4
5 1 ... - 4
6 1 ... 1 4
1 2 ... 2 4
2 2 ... 0 4
3 2 ... 1 4
4 2 ... 3 4
5 2 ... - 4
6 2 ... 3 4
Мой текущий подход состоит в том, чтобы объединить все шесть строк в каждой теме в одну строку, сохраняющую значение 1, используя Proc MEANS
с операторами BY
и OUTPUT
, как описано в этот связанный вопрос. Затем я использую Proc SUMMARY
, чтобы получить значения, перечисленные в переменной Total в операторе have.
proc summary
data=have;
By SubjectID
class Dummy1-4;
output out=want sum=sum;
Есть ли способ получить отдельные / уникальные подсчеты по наблюдениям без предварительной консолидации строк?
Я предпочитаю PROC SQL
, так как это также позволит мне выполнять условные подсчеты в соответствии с ковариатами субъекта, присутствующими в моем рабочем наборе данных. Т.е. создание описаний желаний при условии ковариаты, специфичной для данного предмета.
SubjectID
я хотел бы произвести описательную информацию, сообщающую мне, сколько фиктивных переменных имели значение 1 по всем шести измерениям. ДляID1
это будет 1 (Dummy1
). ДляID2
это будет 3 (Dummy 0
,Dummy1
иDummy99
). - person user10712739   schedule 23.01.2019