家族树是民族志,社会学与心理学常用的一种方法,在笔者的婚恋关系研究中,同样也需要绘制夫妻双方的家族树,以求其其相似性. 恰巧网友今日询问类似问题,记录步骤如下. (以下操作均在RStudio中执行.)
install.packages("kinship2", dependencies = TRUE)
## Error: trying to use CRAN without setting a mirror
require(kinship2, quietly = TRUE)
## Loading required package: lattice
创建家族人口编号,分别从1到49
ids <- 1:49
依次描述编号1到编号49的,他们的爸爸是多少,他们的妈妈编号是多少.如,1,2,3,6号的爸爸是41号,妈妈是42号,格式如下:
dad <- c(41, 41, 41, NA, NA, 41, 43, 43, 4, 6, 6, NA, 9, 9, 9, NA, 11, 11, NA,
15, 15, 19, 45, 45, 45, 45, 45, 45, 45, 47, NA, 29, 29, 29, 29, NA, 31,
31, 31, 36, NA, NA, NA, NA, NA, NA, NA, NA, 37)
mom <- c(42, 42, 42, NA, NA, 42, 44, 44, 5, 7, 7, NA, 10, 10, 10, NA, 12, 12,
NA, 16, 16, 18, 46, 46, 46, 46, 46, 46, 46, 48, NA, 30, 30, 30, 30, NA,
32, 32, 32, 35, NA, NA, NA, NA, NA, NA, NA, NA, 13)
描述各自性别与现在是否在世关系
1表示男,2表示女,3表示未知.4表示中止
sexes <- c(1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1,
2, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2,
1, 2, 3)
0表示在世,1表示死亡.
dead <- c(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 0)
描述来往状态关系.0表示不受影响;1表示受到影响;NA表示未知.
affected1 <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, NA, NA, NA, NA,
NA, NA, NA, NA, NA)
affected2 <- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, NA, NA, NA, NA, NA, NA, NA, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, NA, NA,
NA, NA, NA, NA, NA, NA, NA)
affect <- as.matrix(cbind(affected1, affected2))
将上述所有关系赋值给变量family.
family <- pedigree(id = ids, dadid = dad, momid = mom, affected = affect, sex = sexes,
status = dead)
plot.pedigree(family)
pedigree.legend(family, location = "bottomright", labels = list("Factor VIII\nDeficiency",
"Myotonic\nDystrophy"), cex = 0.8, radius = 0.3)
更多文档: