首页 > 解决方案 > R中基于条件组合的数据查询

问题描述

我在 R 中有一个数据框,其中包含大约 1000 个观察值和 2 个变量,即row.m.zrow.retention.time,例如:

structure(list(row.m.z = c(301.14, 196.10, 132.10, 
160.13, 146.12, 166.09, 357.28, 230.06, 
307.2099609, 112.0537033, 220.13, 113.00, 120.08, 
261.11, 182.08, 410.33, 212.85, 248.12, 
176.88, 321.18), row.retention.time = c(6.1, 1.46, 
0.77, 0.94, 2.42, 0.94, 16.74, 1.61, 13.76, 1.61, 7.67, 0.74, 
2.42, 3.91, 1.25, 16.76, 0.69, 3.38, 0.73, 12.97)), row.names = c(NA, 
20L), class = "data.frame")

看起来像

    row.m.z row.retention.time
1  301.1400               6.10
2  196.1000               1.46
3  132.1000               0.77
4  160.1300               0.94
5  146.1200               2.42
6  166.0900               0.94
7  357.2800              16.74
8  230.0600               1.61
9  307.2100              13.76
10 112.0537               1.61
11 220.1300               7.67
12 113.0000               0.74
13 120.0800               2.42
14 261.1100               3.91
15 182.0800               1.25
16 410.3300              16.76
17 212.8500               0.69
18 248.1200               3.38
19 176.8800               0.73
20 321.1800              12.97

我需要让 R 找到结合两个条件的行:变量row.retention.time在两行中应该相同,而变量row.m.z.在行之间应该是 +/- 6。换句话说,我需要在我的数据观察中找到相同row.retention.time和 6 之间的差异row.m.z.

在上面给出的数据示例中,代码应该找到两个观察值,row.retention.time分别为 0.94 和row.m.z166.09 和 160.13

我已经尝试了几个分组或过滤选项,但在所有这些选项中,我需要为每个变量指定一个值或值范围,而我想要做的是相互比较行中的值。

标签: rdata-filtering

解决方案


推荐阅读