Как исключить пациентов в R на основе количества чтений? - PullRequest
0 голосов
/ 01 февраля 2020

Я борюсь с определенным аспектом фильтрации моих данных.

У меня есть таблица, в которой записано около 300 параметров для примерно 8000 пациентов в ходе исследования. Я уже могу фильтровать для тех, у кого нет базовых показаний, но я изо всех сил пытаюсь исключить пациентов с небольшим количеством показаний для определенной переменной.

Например, я пытаюсь запустить простую модель, которая коррелирует показатели желудочно-кишечного тракта с рядом других переменных. Что я должен гарантировать, так это исключение пациентов с нулевым показателем или одним показанием для SCOPAAUT_gastrointestinal. Кто-нибудь имел дело с чем-либо связанным с этим? Я могу указать номер пациента, но оттуда я не уверен, куда двигаться дальше.

model1 <- lmer(SCOPAAUT_gastrointestinal~Age_bl + GENDER + EDUCYRS + APPRDX_enrol +
                 (1 + Years_bl|PATNO), data = datasetfilteredDR)

1 Ответ

0 голосов
/ 01 февраля 2020

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

Предположим, у вас есть кадр данных по следующим строкам:

set.seed(23)
df <- data.frame(
  patient = c("A", "A", "B", "C", "A", "B", "A", "C", "A", "B"),
  readings = c(sample(1:5, 10, replace = T)),
  other_var = c(sample(10))
)
df
   patient readings other_var
1        A        5         8
2        A        4         4
3        B        3         3
4        C        1         6
5        A        3         7
6        B        5         5
7        A        2         2
8        C        1         9
9        A        5         1
10       B        1        10

И давайте предположим, что вы хотите исключить тех пациентов, у которых менее 3 показаний. Затем вы можете использовать оператор отрицания ! и подмножество df для переменной, по которой вы хотите фильтровать:

df_filtered <- df[!df$readings < 3, ]
df_filtered
  patient readings other_var
1       A        5         8
2       A        4         4
3       B        3         3
5       A        3         7
6       B        5         5
9       A        5         1
...