Предыстория моего вопроса: у меня есть набор данных, состоящий из повторяющихся измерений, по одной точке данных в строке. Эти данные взяты из лонгитюдного исследования, поэтому на данный момент не у каждого испытуемого есть все точки данных.
Я хотел бы иметь возможность извлекать все точки данных, соответствующие критериям, то есть все повторяющиеся измерения или те, которые имеют два повторных измерения.
Вот упрощенный пример:
subject.id <- c( 0, 0, 0, 1, 1, 1, 2, 2, 3 )
visit <- c( 0, 1, 2, 0, 1, 2, 0, 1, 0 )
data.value <- c( 32, 35, 38, 12, 18, 24, 9, 13, 21 )
data.from.study <- data.frame( subject.id, visit, data.value )
что приводит к:
subject.id visit data.value
1 0 0 32
2 0 1 35
3 0 2 38
4 1 0 12
5 1 1 18
6 1 2 24
7 2 0 9
8 2 1 13
9 3 0 21
So:
- Субъекты 0 и 1 имеют исходный уровень и два повторных измерения,
- Субъект 2 имеет базовое измерение и одно повторное измерение, и
- Субъект 3 имеет только базовую меру.
Я хотел бы иметь возможность выборочного подмножества для всех субъектов, у которых есть два повторяющихся измерения (или один, или только базовый уровень), куда включены все данные, то есть:
> data.2.measures <- ??
> data.2.measures
subject.id visit data.value
1 0 0 32
2 0 1 35
3 0 2 38
4 1 0 12
5 1 1 18
6 1 2 24
Я могу составить подмножество для того, где — используя этот пример — visit == 2. Но тогда я не понимаю, как я могу также извлечь данные для посещений 0 и 1 для тех субъектов, у которых есть вторая точка данных о посещении. Концептуально я вижу, что знаю subject.id и могу как-то использовать эту информацию, но тогда я не уверен, как создать подмножество с помощью списка. Есть ли здесь оператор %in% потенциальной помощи?
Есть предположения? Заранее спасибо.