我正在尝试索引 R 公式中的某些组件,例如
var<-c("x1", "x2", "x3")
for (i in var) as.formula(i/x4)
但它总是伴随着一个错误:
Error in i/x4 : non-numeric argument to binary operator
有人可以知道如何使它工作吗?这样就可以了,
x1/x4, x2/x4, x3/x4
阅读 OP 的评论后,改变对 OP 需求的回答
for (i in var) {
form <-sprintf("~ %s/ x4 ",i)
deltamethod(as.formula(form),...) #other arguments that you need to supply
}
根据 OP 的评论,这些公式似乎旨在用作msm::deltamethod
函数的参数。从?msm::deltamethod
中,我们读到一个示例公式如下所示~ 1 / (x1 + x2)
:
sapply(var, function(x) as.formula(paste0("~", x, "/x4")))
# $x1
# ~x1/x4
# <environment: 0x1016b07f0>
#
# $x2
# ~x2/x4
# <environment: 0x1016a3ea0>
#
# $x3
# ~x3/x4
# <environment: 0x101698630>
现在我们有一个公式列表,每个公式都可以用作msm::deltamethod
.