Rで解析:使い方はいろいろ?インターバルデータの操作「intervals」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

間隔をもつデータを操作、プロットする「intervals」パッケージの紹介です。なお、本パッケージで使用されているIntervalsおよびIntervals_fullクラスはS4クラスで定義されいます。

S4クラスを簡単に紹介します。

S4クラスはS3クラスと異なり、slotとtypeで収録するデータが明確に示され「異なるtypeのデータ」を含まない便利な機能があります。参考までに、データを取り出すには”@”やslotコマンドを使用します。

パッケージのバージョンは0.15.2。R version 4.2.2でコマンドを確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("intervals")

実行コマンド

詳細はコマンド、パッケージヘルプを確認してください。

#パッケージの読み込み
library("intervals")

###データ例の作成#####
InterData <- matrix(1:10, ncol = 2)
########

#Intervals&#12463;&#12521;&#12473;&#12408;&#12398;&#22793;&#25563;:Intervals&#12467;&#12510;&#12531;&#12489;
IVData <- Intervals(InterData, type = "R")
#&#21015;&#21517;&#12398;&#20184;&#19982;
rownames(IVData) <- LETTERS[1:5]
IVData

Object of class Intervals
5 intervals over R:
A [1, 6]
B [2, 7]
C [3, 8]
D [4, 9]
E [5, 10]
#&#12487;&#12540;&#12479;&#12434;&#12503;&#12525;&#12483;&#12488;
plot(IVData)

#Intervals_full&#12463;&#12521;&#12473;&#12408;&#12398;&#22793;&#25563;:Intervals_full&#12467;&#12510;&#12531;&#12489;
#Intervals_full&#12463;&#12521;&#12473;&#12399;&#38283;&#22987;&#28857;&#12539;&#32066;&#20102;&#28857;&#12487;&#12540;&#12479;&#12398;&#32232;&#38598;&#12364;&#21487;&#33021;&#12391;&#12377;
IVFullData <- Intervals_full(InterData)
#&#21015;&#21517;&#12398;&#20184;&#19982;
rownames(IVFullData) <- letters[1:5]
IVFullData

Object of class Intervals_full
5 intervals over R:
a [1, 6]
b [2, 7]
c [3, 8]
d [4, 9]
e [5, 10]

###&#20197;&#19979;Intervals_full&#12463;&#12521;&#12473;&#12408;&#12398;&#12467;&#12510;&#12531;&#12489;&#36969;&#24540;&#20363;#####
#&#38283;&#22987;&#28857;&#12539;&#32066;&#20102;&#28857;&#12487;&#12540;&#12479;&#12398;&#32232;&#38598;:closed&#12467;&#12510;&#12531;&#12489;
closed(IVFullData)[2:3, 1] <- FALSE
closed(IVFullData)[4,2] <- FALSE
IVFullData

Object of class Intervals_full
5 intervals over R:
a [1, 6]
b (2, 7]
c (3, 8]
d [4, 9)
e [5, NA]

#&#12487;&#12540;&#12479;&#12434;&#12503;&#12525;&#12483;&#12488;
#&#12487;&#12540;&#12479;&#12364;&#38281;&#12376;&#12425;&#12428;&#12390;&#12356;&#12394;&#12356;"("&#12434;&#12399;
#&#12471;&#12531;&#12508;&#12523;&#12364;&#30333;&#25244;&#12365;&#12391;&#34920;&#31034;&#12373;&#12428;&#12414;&#12377;
plot(IVFullData)

#&#38283;&#22987;&#28857;&#12539;&#32066;&#20102;&#28857;&#12434;&#34920;&#31034;:reduce&#12467;&#12510;&#12531;&#12489;
reduce(IVFullData)

Object of class Intervals_full
1 interval over R:
[1, 10]

#e&#12398;&#26368;&#22823;&#32066;&#20102;&#28857;&#12434;NA&#12395;&#32622;&#25563;,&#12487;&#12540;&#12479;&#12475;&#12483;&#12488;&#20869;&#12398;&#26368;&#22823;&#32066;&#20102;&#28857;&#12399;9
IVFullData[5, 2] <- NA
IVFullData

Object of class Intervals_full
5 intervals over R:
a [1, 6]
b (2, 7]
c (3, 8]
d [4, 9)
e [5, NA]

#reduce&#12467;&#12510;&#12531;&#12489;
#&#35686;&#21578;&#12364;&#20986;&#12414;&#12377;&#12364;9&#12392;&#34920;&#31034;&#12373;&#12428;&#12414;&#12377;
reduce(IVFullData)

Object of class Intervals_full
1 interval over R:
[1, 9)

#&#12487;&#12540;&#12479;&#12434;&#12503;&#12525;&#12483;&#12488;
plot(IVFullData)

#&#38283;&#22987;&#28857;&#12539;&#32066;&#20102;&#28857;&#31684;&#22258;&#12398;&#38283;&#22987;&#28857;&#12434;&#22793;&#26356;:interval_intersection&#12467;&#12510;&#12531;&#12489;
#&#22793;&#26356;&#20869;&#23481;&#12434;&#25351;&#23450;&#12375;&#12394;&#12369;&#12428;&#12400;reduce&#12467;&#12510;&#12531;&#12489;&#12392;&#21516;&#12376;&#32080;&#26524;
interval_intersection(IVFullData)

#&#38283;&#22987;&#28857;&#12395;&#20516;&#12434;&#36861;&#21152;
interval_intersection(IVFullData, IVFullData + 5)

#&#12487;&#12540;&#12479;&#12475;&#12483;&#12488;&#20869;&#12363;&#12425;&#22806;&#12428;&#12427;&#20516;&#12434;&#36861;&#21152;&#12377;&#12427;&#12392;&#12456;&#12521;&#12540;&#12364;&#20986;&#12414;&#12377;
interval_intersection(IVFullData, IVFullData + 10)

出力例

・Intervalsコマンド

Intervals

・開始点・終了点データの編集:closedコマンド

reduce

・最大値を変更後にプロット

NAreduce

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました