У меня есть набор данных, в котором есть информация для нескольких состояний, которые относятся к одной категории (например: человек с гиперактивным типом СДВГ будет считаться имеющим СДВГ).Мне нужно определить, у скольких людей есть хотя бы одно из условий в категории, чтобы я мог иметь общий счет, не считая человека дважды.
Вот так выглядят мои данные:
IID SEX ADHDh ADHDi ADHDc...
Ind1 M Present Absent Absent
Поэтому мне нужно выполнить перекрестную таблицу, потому что в противном случае я буду раздувать реальный счет.Проблема заключается в том, что значения моей строки являются категориальными переменными: «Присутствует», «Отсутствует» и «Unable_to_code».Однако меня интересует только подсчет числа людей со значением «Присутствовать» в нескольких столбцах, которые имеют условия, относящиеся к одной категории.Я подходил к этому несколькими способами, но у меня всегда одна и та же проблема: я получаю грязную таблицу, которая пытается подсчитать все различные категориальные значения для каждого столбца.Мне нужно получить таблицу на случай непредвиденных обстоятельств, которая подсчитывает только количество лиц в этой категории, у которых есть хотя бы одно условие («присутствует» для ADHD_NOS, ADHDh, ADHDi или ADHDc), сгруппированное по полу.квадратный тест для сравнения между мужчинами и женщинами.
Это то, что я ищу: `
SEX ADHD
F 57
M 113
Это код, который я использовал в Пандах без группировки по полу:
ct_adhd=pd.crosstab([df_trans.ADHD_NOS=="Present", df_trans.ADHDi=="Present", df_trans.ADHDh=="Present"], df_trans.ADHDc=="Present", margins=True)
ct_adhd
Это грязная таблица, которую я получил:
ADHD_NOS False True All
ADHDc ADHDi ADHDh<br>
False False False 10 5 25
True 5 0 2
True False 5 0 3
True False False 20 0 30
True False 1 0 1
All 41 5 107
Я также пробовал этот код для суммирования только тех людей, которые имеют значение = "Присутствует »в любом из столбцов, однако этот код автоматически предполагает, что no-data = 0, поэтому он не дает информацию о том, сколько человек на самом деле имеют данные:
df_trans['Count_ADHD'] = (df_trans[["ADHDc","ADHDh","ADHDi"]] == 'Present').sum(axis=1)
PSМне нравится лучше работать с Пандами, но если бы это было лучше в R, я бы попробовал. Я был бы признателен за любую помощь!