【发布时间】:2015-06-23 15:54:01
【问题描述】:
我有一系列代表不同分子 (F0001, F0002,...,) 的数据框,其中包含使用该分子的实验的成百上千的分数。每个数据框都是这样的。
F0001
PoseID Score
1 AAAA_1 -13.70
2 AAAA_2 -9.21
3 AAAA_3 -7.60
4 AAAA_4 -6.28
5 ....
F0002
PoseID Score
1 AAAB_1 -14.90
2 AAAB_2 -13.92
3 AAAB_3 -13.49
4 AAAB_4 -11.95
5 ....
等等等等
基于截止值,我想对数据进行子集以剔除任何高于所述截止值的姿势,因此,进行简单的二进制比较。一个稍微复杂的因素是每个 (F0001, F0002,...,) 的截止值都不同,所以我继续将它们存储在数据框中(我们称之为 cutoffs。
分界线
FragmentID ScoreCutOff
1 F0001 -9.69
2 F0002 -9.33
3 F0003 -8.50
4 ....
所以我想问题变成了,我是在cutoffs 和每个数据帧之间进行比较,还是将所有数据帧添加到一个列表中,然后在cutoffs 和那里的数据帧列表之间进行比较?
我觉得Ari Friedman's answer 很准,所以我正在使用 sapply/any 工具来让它工作,通常使用 Python/CPP/ 中的嵌套循环和数据结构很容易解决这类问题Java,但我是 R 中的新手,所以我很想听听人们的任何其他想法。当然,如果我在此期间自己解决它,我会发布解决方案以供批评。
【问题讨论】:
-
我首先从 cutoffs$FragmentID 列构建一个命名数据帧列表,然后使用该列表上的
mapply作为第一个参数,第二个参数作为相应的 $ScoreCutoff 值。设置它的工作量似乎太大了。您应该学会发布用 R 编写的示例。 -
是的,干杯,我是该网站的新手,所以没想到这样做。
-
上面的评论是@人提醒我勾选正确的解决方案但其评论不再存在。 :)
标签: r