2012-03-17 14 views
0

私はIRangesパッケージを初めて使用しており、IRangeの最終値を取得するのに問題があります。私はちょっと困惑して、問題のない開始値と幅の値を得ることができました。そして、私のケース/スペルがヘッダー行にマッチします。他の誰かがこれにぶつかったり、私が間違っていることに気づくことができますか?ありがとう、それは非常に感謝しています!R/BioconductorのIRangeの最終値を取得できません

library(IRanges) 
> test=IRanges(100645,100664) 

> test 
IRanges of length 1 
start end width 
[1] 100645 100664 20 

> [email protected] 
[1] 100645 

> [email protected] 
[1] 20 

> [email protected] 
Error: no slot of name "end" for this object of class "IRanges" 
+3

一般的に(あなたの将来の参照のために)、スロットは「プライベート」であるとみなし、 '@ 'を介して直接値にアクセスすべきではありません。パッケージ開発者があなたに何かへのアクセス権を与えたい場合、アクセサー機能を使ってアクセスします。 Lianzinhoが指摘したように、 'width(test)'、 'start(test)'または 'end(test)'には –

答えて

1

パッケージではありません経験が、ベース?"class:Ranges"上:

end(test$ranges[1]) 

また、再生可能なサンプルデータを提供するために、将来に役立つだろう。

+0

があります。私は実際にIRangeを宣言した行に貼り付けるのを忘れていました。素晴らしい仕事をした。ありがとう! – rattlerray

3

IRangeオブジェクトのフィールドにアクセスする最も簡単な方法は、ヘルパー関数:start(),end()およびwidth()を使用しています。これらは、対応する列のすべての要素を含むベクトルを返します。

+0

ありがとう! @表記が3つのフィールドのうちの2つに対して機能したのは非常に奇妙ですが、ヘルパーメソッドを使用します。とても有難い! – rattlerray

+0

@rattlerrayこれは '@end'スロットがまったく存在しないためです。 'str(IRange_object)'と入力すると表示されます。 '@ start'と' @width'だけが定義されています。おそらく 'end'はそれらから計算されます。 – Lianzinho

関連する問題