0

これは、次の質問への応用です:別の列によって定義された間隔の間の列内のオブジェクトを合計します。

私が知りたいのは、Bの値を合計したい場合に答えを調整する方法です.orまたはor((A[i+1]-A[i]==0)は行(A[i+1]-A[i]==1)インデックスです。したがって、基本的に同じ値+/- 1を持つAsのB行を合計しますが、同じ行を 2 回合計しませんか?(A[i]-A[i-1]==0)(A[i]-A[i-1]==1))i

ループ関数を作成しようとしましたが、データ フレームで行インデックスを使用するとスタックします。例:次のデータフレームが与えられた場合

df     
      A B
[1,]  1 4
[2,]  1 3
[3,]  3 5
[4,]  3 7
[5,]  4 3
[6,]  5 2

取得したいのは、次のデータ フレームです。

df
      A B
[1,]  1 7
[2,]  3 15
[3,]  5 2

さらに、次のような大きなデータ フレームがある場合:

df
chr     start           stop            m       n       s
chr1    71533361        71533362        23      1       -
chr1    71533361        71533362        24      26      -
chr1    71533361        71533362        25      1       -

結果を次のように表示したい (列 m の値が最大の行を選択した):

df
chr1    71533361        71533362        24      28      -
4

2 に答える 2

0

A[i] - A[i-1] が基準を満たすかどうかをテストする for ループを作成します。

それが true の場合、合計変数に b[i] を追加し、その方法を繰り返します。

私は A[] を反復しているだけなので、B[] から何もカウントしないでください。

于 2013-05-02T08:28:54.933 に答える