Rで解析:家系図の作成もお任せ!利用範囲は広い「kinship2」パッケージの紹介


家系図を作成できる「kinship2」パッケージを紹介します。多くの機能が搭載されている本パッケージの中から「家系図」を作成する基本的なコマンドを紹介します。利用範囲は非常に広いと思います。集団の関係性を示すことが可能です。

紹介するコマンドと出力図、パッケージヘルプを確認いただくことで歴史の考証だけでなく、生物学など発展的な利用が可能かと思います。いつか、アニメの紹介にも利用できればと思います。

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


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

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

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

実行コマンドの紹介

詳細はコメント、パッケージヘルプを確認してください。紹介しませんが、ラベルには日本語の使用が可能です。Macの日本語文字化け防止は過去記事を参考にしてください。

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

######データ例の作成########
#性別:男性「1」,女性「2」
#塗り:1で塗りつぶし
FData <- c(rep(125, 2), rep(0, 18), rep(117, 5), rep(119, 5), rep(0, 10), rep(205, 9), 211)
MData <- c(rep(126, 2), rep(0, 18), rep(118, 5), rep(120, 5), rep(0, 10), rep(206, 9), 130)
TestData <- data.frame("家系" = c(rep(1, 30), rep(2, 20)),
                       id = c(101:130, 201:220),
                       "父親" = FData, "母親" = MData,
                       "性別" = rep(c(1, 2), 25), "塗りの指定" = c(rep(c(1, 0), 24), 1, 1),
                       "プロットラベル" = paste0("Test",1:50))

#データを作業フォルダにエクセルで出力
#パッケージの使い方は下記URLを参照
#https://www.karada-good.net/analyticsr/r-138/
library("WriteXLS")
WriteXLS("TestData", "TestData.xlsx")
############################

#家系図データの作成
#塗りつぶしはaffectedオプションで指定
#relationオプション:matrixクラスで下記の順にデータが並んでいる必要があります
#id1, id2, codeの順です
#matrix(c(127, 123, 212, 121, 4, 1), ncol = 3, nrow = 2)を実行してみてください
#code:1 = 一卵性双子, 2 = 二卵性双子,
#     3 = 双子性質が不明?, 4 = 配偶者の関係を設定することが可能です
PlotData <- pedigree(id = TestData[, 2], dadid = TestData[, 3],
                     momid = TestData[, 4], sex = TestData[, 5],
                     affected = TestData[, 6], 
                     relation = matrix(c(127, 123, 212, 121, 4, 1), ncol = 3, nrow = 2))

#家系図をプロット
#ラベルはidで指定
#ラベルサイズはcexで指定
#シンボル色は性別で判断,男性が茶色,女性は青
#シンボル:四角;男性,丸;女性
plot(PlotData, col = ifelse(TestData[, 5] == 1, "#a87963", "#4b61ba"),
     id = TestData[, 7], cex = 0.6)

出力例

画像をクリックしていただけると拡大表示されます。

kinship


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

おすすめコンテンツ


スポンサードリンク