如何在R中根据存储有向边的矩阵生成dagify所需的公式?
R边矩阵转dagify公式实现方法
你可以通过分组拼接+公式转换的逻辑直接生成所需结构,完整可运行代码如下:
# 加载依赖包 library(dplyr) library(ggdag) # 输入的边矩阵 arc.set <- matrix(c("Q", "A", "G", "A", "G", "D", "D", "A"), byrow = TRUE, ncol = 2, dimnames = list(NULL, c("from", "to"))) # 按to列分组拼接生成公式列表 formula_list <- arc.set %>% as.data.frame() %>% dplyr::group_by(to) %>% dplyr::summarise(formula_str = paste0(to, " ~ ", paste(from, collapse = " + "))) %>% dplyr::pull(formula_str) %>% lapply(as.formula) # 生成最终的tidy dag对象 tidy_ggdag <- do.call( dagify, c(formula_list, exposure = "G", # 可根据需求自定义 outcome = "A") # 可根据需求自定义 ) %>% tidy_dagitty()
运行后生成的tidy_ggdag对象和你给出的期望输出结构完全一致。
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

