0

我有一个数据集,其中一小部分是

     ID time GLUCOSE
1    NA    6      NA
2  1302    0      78
3  1302    6      90
4  1927    0      NA
5  1927    6      NA
6  2121    0      94
7  2121    3      90
8  2121    6     100
9  2121    9      93
10 2121   12      88
11 4022    0      87
12 4022    6      94
13 4022   12      87
14 4867    0     102
15 4867    3     100
16 4867    6     103
17 4867    9      99
18 4867   12     106
19 5351    0     108
20 5351    3     112

我想只保留那些在时间 0 时葡萄糖值高于 100 的人,但我想保留这些人的所有值。因此,对于 ID = 4867,我希望保留所有 5 个值,即使是低于 100 的值,因为他在 0 时的值是 102。

TIA

4

1 回答 1

4

我首先获取相关的 ID,然后在这些 ID 上设置子集,如下所示:

ids <- df$ID[ which( df$time==0 & df$GLUCOSE > 100 ) ]
ids
# [1] 4867 5351

#  We can then subset the dataframe using these IDs and the %in% operator
df[df$ID %in% ids , ]
#    ID time GLUCOSE
#14 4867    0     102
#15 4867    3     100
#16 4867    6     103
#17 4867    9      99
#18 4867   12     106
#19 5351    0     108
#20 5351    3     112
于 2013-06-09T21:21:10.223 回答