首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >展开矩阵并将行和列名替换为R中的键

展开矩阵并将行和列名替换为R中的键
EN

Stack Overflow用户
提问于 2021-07-01 12:19:41
回答 1查看 27关注 0票数 0

我正在运行一个线性混合模型,其中包含来自相关个人的数据和来自同一个人的多个样本。我有一个血缘关系矩阵,每个人有一个血缘关系ID。亲属关系is与模型正在分析的分析is不同。我需要创建一个血缘关系矩阵,每个分析ID有一个行/列,而不是每个血亲ID有一个行/列。

代码语言:javascript
运行
复制
key = data.frame(assay_id = c("aid_1","aid_2","aid_3","aid_4","aid_5","aid_6"), kinship_id = c("kid_1","kid_2","kid_2","kid_3","kid_3","kid_4"))
key
start_kin = data.frame(kid_1 = c(1,0.25,0,0.5), kid_2= c(0.25,1,0,0.5), kid_3 = c(0,0,1,0.25), kid_4= c(0.5,0.5,0.25,1) )
rownames(start_kin) =c("kid_1","kid_2","kid_3","kid_4")
start_kin
intermediate_kin = start_kin
intermediate_kin$kid_2a = intermediate_kin$kid_2
intermediate_kin$kid_3a = intermediate_kin$kid_3
intermediate_kin["kid_2a",] = intermediate_kin["kid_2",]
intermediate_kin["kid_3a",] = intermediate_kin["kid_3",]
intermediate_kin
final_kin = intermediate_kin
rownames(final_kin) = c("aid_1","aid_2","aid_4","aid_6","aid_3","aid_5")
names(final_kin) = c("aid_1","aid_2","aid_4","aid_6","aid_3","aid_5")
final_kin
EN

回答 1

Stack Overflow用户

发布于 2021-07-01 13:05:33

根据你的描述,我不确定你到底想做什么。这是一个基于我的猜测的代码示例。在这里,每个亲人都有3次化验。

代码语言:javascript
运行
复制
kin <- letters[1:4]
assay <- 1:3
dat <- expand.grid(kin = kin, assay = assay)
dat <- apply(dat, 1, paste0, collapse = "-")
n <- length(dat)
m <- matrix(rep(0, n * n), nrow = n)
rownames(m) <- dat
colnames(m) <- dat
m

#     a-1 b-1 c-1 d-1 a-2 b-2 c-2 d-2 a-3 b-3 c-3 d-3
# a-1   0   0   0   0   0   0   0   0   0   0   0   0
# b-1   0   0   0   0   0   0   0   0   0   0   0   0
# c-1   0   0   0   0   0   0   0   0   0   0   0   0
# d-1   0   0   0   0   0   0   0   0   0   0   0   0
# a-2   0   0   0   0   0   0   0   0   0   0   0   0
# b-2   0   0   0   0   0   0   0   0   0   0   0   0
# c-2   0   0   0   0   0   0   0   0   0   0   0   0
# d-2   0   0   0   0   0   0   0   0   0   0   0   0
# a-3   0   0   0   0   0   0   0   0   0   0   0   0
# b-3   0   0   0   0   0   0   0   0   0   0   0   0
# c-3   0   0   0   0   0   0   0   0   0   0   0   0
# d-3   0   0   0   0   0   0   0   0   0   0   0   0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68204244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档