アメリエフの技術ブログ

Amelieff Staff Blog

Rパッケージの付属データの確認方法

こんにちは。バイオインフォマティクス担当のFukuです。

統計解析ソフトR -The Comprehensive R Archive Network でデータ解析の勉強をするとき、テストデータがあると便利です。
3種の菖蒲の大きさのデータセット iris が有名ですね🌷

そのほかにも、パッケージに付属したデータがある場合があります。
各パッケージに適したデータがあれば、新しいパッケージの動作確認や、使い方を把握するのに便利ですね!

data関数を使用して、Rパッケージの付属データの確認をすることができます。

目次

本日は、この記事↓ で使用した EBSeq を例に、付属データセットを見てみます。

staffblog.amelieff.jp

付属データセットの見方

data() 関数を使うと、パッケージに付属のデータを一覧で見ることができます。
package オプションに、目的のパッケージ名を書きます。

> data(package="EBSeq")
Data sets in package ‘EBSeq’:

GeneMat                 The simulated data for two condition gene DE
                        analysis
IsoList                 The simulated data for two condition isoform DE
                        analysis
IsoMultiList            The simulated data for multiple condition
                        isoform DE analysis
MultiGeneMat            The simulated data for multiple condition gene
                        DE analysis

* 一覧を見る画面は、「q」で終了します。

この一覧を見て、「多群比較を試したいから MultiGeneMatを使ってみよう 」などと考えて使っていきます。

data() 関数で、呼び出したいオブジェクトを召喚することができます🪄

> library(EBSeq)
> data(MultiGeneMat)

> class(MultiGeneMat)
[1] "matrix" "array"
> head(MultiGeneMat)
        [,1] [,2] [,3] [,4] [,5] [,6]
Gene_1   411  588  395  425 1515 1585
Gene_3   268  240  240  292  956 1049
Gene_5   768  860  698  820 2538 2077
Gene_7  1853 1841 2077 1912  478  500
Gene_9   878  634  853  679  253  204
Gene_11  844  791 1122  724  271  235

そのデータセットのpathを調べる

上記で呼び出した "MultiGeneMat" などの実態がどこにあるのか調べる方法です。

system.file() 関数の package オプションにパッケージ名を入れます。
そうすると、まずはRパッケージの絶対パスが得られます。続いてそのディレクトリの中を見ていくと、データの本体を見つけられます。

> system.file( package="EBSeq")
[1] "/Library/Frameworks/R.framework/Versions/4.1/Resources/library/EBSeq"

> list.files(system.file( package="EBSeq"))
 [1] "data"        "demo"        "DESCRIPTION" "doc"         "help"       
 [6] "html"        "INDEX"       "Meta"        "NAMESPACE"   "NEWS"       
[11] "R"          

上記の例では、 "data" ディレクトリが怪しいですね。見てみましょう🔎
(たいてい、"data" か "extdata" というフォルダ名です)

system.file () の第一引数に"data" と入れると、EBSeq パッケージの中の "data"というディレクトリ/ファイルを探してくれます。

> system.file( "data", package="EBSeq")    
[1] "/Library/Frameworks/R.framework/Versions/4.1/Resources/library/EBSeq/data"

> list.files(system.file("data", package="EBSeq"))
[1] "GeneMat.rda"      "IsoList.rda"      "IsoMultiList.rda" "MultiGeneMat.rda"

"/Library/Frameworks/R.framework/Versions/4.1/Resources/library/EBSeq/data" というパスに、
Rデータが本体として保存されているようですね。

おまけ・Rの標準のデータセット

irisに代表される、標準的に付属しているデータセットの一覧はおなじみdata() 関数に引数をつけない、

data()

で見ることができます。

Data sets in package ‘datasets’:

AirPassengers           Monthly Airline Passenger Numbers 1949-1960
BJsales                 Sales Data with Leading Indicator
BJsales.lead (BJsales)
                        Sales Data with Leading Indicator
BOD                     Biochemical Oxygen Demand
CO2                     Carbon Dioxide Uptake in Grass Plants
ChickWeight             Weight versus age of chicks on different diets
DNase                   Elisa assay of DNase
EuStockMarkets          Daily Closing Prices of Major European Stock
                        Indices, 1991-1998
...
iris                    Edgar Anderson's Iris Data
...

* 一覧を見る画面は、「q」で終了します。 * /keyword で検索が出来ます。

ここにあるデータセットは、特に呼び出す処理は必要なく、いきなり名前を打って使用できます。

> head(CO2)
  Plant   Type  Treatment conc uptake
1   Qn1 Quebec nonchilled   95   16.0
2   Qn1 Quebec nonchilled  175   30.4
3   Qn1 Quebec nonchilled  250   34.8
4   Qn1 Quebec nonchilled  350   37.2
5   Qn1 Quebec nonchilled  500   35.3
6   Qn1 Quebec nonchilled  675   39.2

ご覧いただきありがとうございました。
それでは、皆様よい Rライフを。