我有一个数据集,其中一小部分是
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
答案 0 :(得分: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