本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

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

パッケージのバージョンは1.8.5。実行コマンドはwindows 11のR version 4.1.2で確認しています。

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

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

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

実行コマンドの紹介

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

#パッケージの読み込み
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))
############################

#家系図データの作成
#塗りつぶしは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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.