我有一个包含 2,130 次观察的数据框:130 名中风患者和 2,000 名心脏病发作 (MI) 患者采用这种格式。
Index Age Sex Stroke MI
1 42 M FALSE TRUE
2 76 M FALSE TRUE
3 55 F FALSE TRUE
4 80 M TRUE FALSE
5 68 F FALSE TRUE
str(Match)
'data.frame': 2130 obs. of 5 variables:
$ Index : int 1 2 3 4 5 6 7 8 9 10 ...
$ Gender: Factor w/ 2 levels "F","M": 2 1 1 1 2 1 1 2 2 1 ...
$ Age : num 45.8 44.1 67.7 37.4 46.7 72 21.4 50.8 35.8 47.2 ...
$ Stroke: logi TRUE TRUE TRUE TRUE TRUE TRUE ...
$ MI : logi FALSE FALSE FALSE FALSE FALSE FALSE ...
对于 Stroke=TRUE [测试行] 的每一行,我需要 MI=TRUE [匹配行] 的单行。
必须满足以下2个条件:
Sex in [matched row] = Sex in [test row]
Age in [matched row] equal to or within +/- 3 years of Age in [test row]
当一行被选中进行匹配时,它不能再次被使用。由于要匹配 130 次笔划,因此输出应包含 130 次心脏病发作。有足够的心脏病发作可供选择。万一找不到 130,请尽可能多地匹配。
我刚刚开始学习 R(并且没有编程背景),我的尝试仅限于查找带有“which”和“subset”的行,例如所有男性中风患者!关于从哪里开始的任何指导?年龄和性别匹配在医学研究中很常见,其他人将从任何帮助中受益。