0

考虑以下矩阵

> A
   a  b  k
a  1  0  0
b  0  1  0
c  2  3  0
d -1 -1 10

它将被解释为一系列方程:

a = a
b = b
c = 2*a + 3*b
d = 10 - a - b

我有一个接受这样一个矩阵作为参数的函数,但是如果该函数可以接受方程本身而不是矩阵并使用通过公式提供的信息构建矩阵,那就太好了。我一直在阅读有关各种与公式相关的函数的 R 文档,包括和其他函数terms()model.matrix()并且看起来我想做的事情不能以直接的方式完成。

你认为,通过合理的工作量是否可行,还是我应该放弃这个想法?

4

1 回答 1

1

我也怀疑有另一种方法可以解决您的问题。但是,如果您真的想这样做,您可以将您的方程存储为expression, 并eval在适当的时候存储它们。这是一个例子:

build.matrix<-function(m, c.expr, d.expr) {
  rbind(m,eval(c.expr),eval(d.expr))
}

a<-c(1,0,0)
b<-c(0,1,0)
m<-rbind(a,b)
c <- expression(2*m['a',]+ 3*m['b',])
d <- expression(10 - m['a',] - m['b',])

build.matrix(m,c,d)

#   [,1] [,2] [,3]
# a    1    0    0
# b    0    1    0
#      2    3    0
#      9    9   10
于 2012-11-05T15:32:17.890 回答