分析来自另一个数据帧定义的一个数据帧的数据子集

时间:2014-05-05 20:34:58

标签: r

我需要知道如何从一个数据帧的行中取平均值/中值等,这些数据帧是根据它们是否满足引用另一个的条件而选择的。很难解释,所以我只举一个例子。

> d
   Position Value
1         0  0.20
2         5  0.30
3        10  0.45
4        15  0.23
5        20  0.71
6        25  0.10
7        30  0.20
8        35  0.22
9        40  0.80
10       45  0.50
11       50  0.31
12       55  0.40

还有:

  Segment Start End
1       1     0  15
2       2    20  40
3       3    45  55

基本上,“d”在某个“位置”给出变量的值。 “d2”给出来自“d”的数据的几个“段”的起点和终点(或位置)。现在,我想要的是每个“段”中“d”的“值”条目的均值和中位数。因此对于段1,因为它分别具有开始和结束位置0和15,它将从“d”返回0,10和15的条目的平均值。请注意,段不一定具有相同的长度,因此仅取前n个条目,第n个条目,第三个n条目等的均值是不行的。

人们可以将这些片段视为染色体上的片段;并且染色体上的每个点都有一个“值”,它描述了染色体上该点的某些特征,并且我有关于每个点上该值等于的数据,以及每个片段开始和结束的位置的数据(片段都是连续的) ,只是不等长),现在想要计算每个段内所有点的平均值。可以这么说,与我的例子不同,在实际的数据集中,有太多的段来手动计算这些,因此问题。谢谢。

1 个答案:

答案 0 :(得分:1)

你可以尝试

mapply(function(s,e) {
    mean(d$Value[d$Position>=s & d$Position<=e])}
, d2$Start, d2$End)

那应该给你一个与d2行数相同的向量,这样你就可以在所有值所在的位置。

相关问题