【发布时间】:2018-12-12 18:42:51
【问题描述】:
我有一个大数据集(超过 20 万行和一千次试验),其中包含四列信息:
- “试验”:序号)
- “Is.Check”:1 表示检查,0 表示非检查的列
- “ID”:带有支票或行(非支票)名称的列
- “反应”:反应变量
我需要知道在每次试验中,哪些行(以“L”+ 数字表示)位于最大和较小的检查值之间。 例如,在试验 10001 中,我有 5 个检查,最大的是检查 3(反应 = 56)和较小的检查 1(反应 = 50)。我需要知道哪些线停留在这两个值之间,即(大于或等于 50 和小于或等于 56)。附上一个小数据集作为示例。在此,在试用 10001 中,应选择除“L3”之外的所有行。另一方面,在试验 10002 中,较小的 Check 是 Check-1 (50),最大的是 Check-7 (60),因此应该只选择 L3 和 L9。 Checks 和 Reaction Values 在每次 Trial 中都会发生变化,因此,我需要提取每个 Trial 中最大和较小检查之间的值的行。
Trials Is.Check ID Reaction
10001 1 Check-1 50
10001 0 L1 50
10001 0 L2 50
10001 0 L10 50
10001 0 L9 50
10001 0 L6 50
10001 0 L3 48
10001 0 L4 50
10001 0 L8 50
10001 1 Check-5 52
10001 0 L7 50
10001 1 Check-2 52
10001 1 Check-4 54
10001 0 L5 52
10001 1 Check-3 56
10002 1 Check-1 50
10002 0 L1 48
10002 0 L2 48
10002 0 L3 54
10002 0 L4 64
10002 0 L5 64
10002 0 L6 62
10002 0 L7 62
10002 0 L8 70
10002 0 L9 52
10002 1 Check-7 60
10002 1 Check-2 54
10002 1 Check-6 56
10002 1 Check-3 54
【问题讨论】:
-
x[ 50 <= x$Reaction & x$Reaction <= 56, ]? -
试用
10002,为什么只选L8? -
抱歉,只有 L3 和 L9。