Я имею дело с набором данных повторных измерений в широком формате.Каждое наблюдение представляет одно измерение для одного субъекта, и каждый предмет измеряется шесть раз.Данные содержат в основном фиктивные переменные.
Я собираюсь подсчитать уникальные значения фиктивных переменных по всем шести наблюдениям для каждого субъекта.
Имею:
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
Want:
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
, как описано в this связанный вопрос.Затем я использую Proc SUMMARY
, чтобы получить значения, перечисленные в переменной 'Total` в операторе have.
proc summary
data=have;
By SubjectID
class Dummy1-4;
output out=want sum=sum;
Есть ли способ получить отдельные / уникальные значения для наблюдений без предварительной консолидации строк?
Я предпочитаю PROC SQL
, поскольку это также позволит мне выполнять условные подсчеты в соответствии с предметными ковариатами, присутствующими в моем рабочем наборе данных.Т.е. создание нужных описаний при условии ковариации, специфичной для предмета.