如何将含模型公式的列表转换为DAG函数可接受的公式序列?
解决方法:用
do.call()传递列表中的公式序列 要把存储在列表里的公式传给ggm包的DAG()函数,直接传列表会报错——因为DAG()需要的是逗号分隔的独立公式参数。这里可以用R的do.call()函数,它能把列表中的元素拆解成函数的多个独立参数,完美适配需求,不管列表里的公式数量怎么变都能用。
具体代码示例
library(ggm) # 存储公式的列表 fo <- list(x~y, y~z) # 用do.call调用DAG,自动把列表元素转为独立参数 result <- do.call(DAG, fo) # 查看结果 result
原理说明
do.call()的作用是调用指定函数,并将列表中的每个元素作为该函数的单独参数传入。上面的代码等价于手动执行DAG(x~y, y~z),完全符合DAG()对参数形式的要求,而且不管列表里有1个还是N个公式,都能自动适配,非常适合在函数内部动态处理的场景。
内容的提问来源于stack exchange,提问作者Bill Shipley
相关产品推荐
相关产品推荐

