-1

我正在尝试索引 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
4

2 回答 2

2

阅读 OP 的评论后,改变对 OP 需求的回答

for (i in var) {
        form <-sprintf("~ %s/ x4 ",i)
        deltamethod(as.formula(form),...) #other arguments that you need to supply

}

于 2014-04-23T18:02:33.423 回答
1

根据 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.

于 2014-04-23T18:05:18.553 回答