Как найти SD и Среднее непрерывной переменной, у которой есть люди в одной из двух групп в пределах категориальной переменной - PullRequest
0 голосов
/ 06 ноября 2018

По существу, задание состоит в том, чтобы найти SD, среднее значение, p-значение и количество людей в каждой категории категориальной переменной из непрерывной переменной.

В качестве примера, имея переменный ИМТ (непрерывный), который имеет ИМТ пациентов, но задание просит нас найти среднее значение и среднеквадратичное отклонение переменного ИМТ в группе «Нет диабета» и группе «Диабет» той же категории переменная.

Первая переменная представляет собой список ИМТ на пациента, вторая переменная указывает, имеет ли ИМТ индивидуум или нет, 1 и 2 для диабета типа 1 и 2, а 3 для отсутствия диабета.

Мое задание состоит в том, чтобы получить значение p, количество индивидуумов, среднее значение и стандартное отклонение у пациентов с ИМТ, у которых диабет, и у людей с ИМТ без диабета, при удалении кого-либо с отсутствующей информацией.

Я пробовал:

 mean(ds$bmi[ds$diabetesI==1|ds$diabetesI==2])

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

данные

ds <- structure(list(bmi_list = c(23.56748874, 30.2897933, 26.79150092, 
    29.52347213, 32.60591716, 35.04961743, 21.41223797, 27.46530314, 
    28.73467206, 21.19391994, 25.59362916, 27.62345679, 34.45651021, 
    27.48650005, 31.49548668, 26.05817112, 35.83864796, 31.42131479, 
    22.49134948, 33.99585346, 23.67125363, 22.55335653, 29.41248346, 
    32.94855347, 23.2915562, 30.37962963, 23.759308, 25.2493372, 
    29.27315022, 35.26197253), diab4 = c(1L, 1L, 3L, 1L, 1L, 3L, 
    1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 3L, 1L, 1L, 1L, 
    3L, 1L, 3L, 1L, 1L, 1L, 1L, 3L)), row.names = c(1L, 2L, 3L, 4L, 
    5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 
   19L, 20L, 21L, 22L, 23L, 24L, 25L, 27L, 28L, 30L, 31L, 32L), class = 
   "data.frame")

1 Ответ

0 голосов
/ 06 ноября 2018

Мой совет - работать поэтапно. (1) Удалите недостающие данные, (2a) определите случаи диабета, (2c) определите случаи не диабета, (3a) выберите случаи диабета, (3b) выберите случаи не диабета, (4a) вычислите среднее значение для случаев диабета, (4b ) рассчитать среднее значение для случаев, не связанных с диабетом.

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

например. для (1) посмотрите на is.na(whateverdata). Это список флагов, показывающих, является ли каждое значение NA. Это выглядит правильно? У вас есть несколько полей данных, вероятно, вам нужно пропустить регистр, если какое-либо поле отсутствует. Посмотрите на is.na, примененное к каждому полю, и посмотрите на дизъюнкцию | всех из них. Это выглядит правильно? Подсчитайте пропущенные значения с помощью sum. Это выглядит правильно? Затем создайте флаги для не пропущенных данных через !. Наконец выберите не пропущенные данные, подписавшись с флагами не пропущенных через whateverdata[nonmissingflags].

Аналогично для (2a) и (2b) создайте флаги для каждого подмножества и посмотрите на них. Для (3a) и (3b) выберите случаи, используя флаги поднабора, и посмотрите на эти данные.

В (4a) и (4b) просто примените mean к выбранным вами данным. Но на данный момент у вас есть подмножества, готовые для любого анализа, который вы можете применить - вы можете пойти в разных направлениях здесь.

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