我的问题的背景是:我有一个由重复测量组成的数据集,每行一个数据点。这些数据来自纵向研究,因此目前并非每个受试者都有所有数据点。
我希望能够提取符合标准的所有数据点,即所有重复测量或具有两个重复测量的数据点。
这是一个简化的示例:
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
所以:
- 受试者 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
我可以对 where 进行子集 - 使用这个例子 - visit == 2。但是,对于那些具有第二次访问数据点的受试者,我看不到如何提取访问 0 和 1 的数据。从概念上讲,我可以看到我知道 subject.id 并且可以以某种方式使用此信息,但我不确定如何使用列表进行子集化。这里有潜在帮助的%in%运算符吗?
有什么想法吗?提前致谢。