当我已经知道所有系数时,如何求解 R 中的线性方程?

How can I solve a linear equation in R when I already know all the coefficients?

这可能是个愚蠢的问题,但我不知道该怎么做。

我有一个已知系数的方程,我想求解变量。

所以基本上,它会像: 3050 + .05(B-250) = 1088 + .1(B-500)

我知道如何手动解决这个问题并且已经解决了 B = 40150,但我想要的是一种在 R (tidyverse) 中解决 B 的方法,因为我需要在 30 倍左右做这个,稍微改变一下数字。

我如何在 tidyverse 中执行此操作?以前我做了下面的操作,确实给了我截距,但我认为这些是错误的,因为它是对系数的估计,而在我的情况下,我知道系数,我只是不知道如何将它们放入 R将解决。

感谢您的推荐!

我之前做的我认为是错误的:

lmIntx <- function(fit1, fit2, rnd=2) {
  b1<- fit1$coefficient[1]  #y-int for fit1
  m1<- fit1$coefficient[2]  #slope for fit1
  b2<- fit2$coefficient[1]  #y-int for fit2
  m2<- fit2$coefficient[2]  #slope for fit2
  if(m1==m2 & b1==b2) {print("Lines are identical")
  } else if(m1==m2 & b1 != b2) {print("Lines are parallel")
  } else {
    x <- (b2-b1)/(m1-m2)      #solved general equation for x
    y <- m1*x + b1            #plug in the result
    data.frame(x=round(x, rnd), y=round(y, rnd))
  }
}

line1 <- data.frame(x=allplan_t1$bill, y=allplan_t1$ppt)
line2 <- data.frame(x=allplan_t1$bill, y=allplan_t1$spt) 
line3 <- data.frame(x=allplan_t1$bill, y=allplan_t1$vpt)

lmIntx(lm(line1$y~line1$x), lm(line2$y~line2$x)) 
# intersection of lines 1 and 2

lmIntx(lm(line2$y~line2$x), lm(line3$y~line3$x))
# intersection of lines 2 and 3

lmIntx(lm(line1$y~line1$x), lm(line3$y~line3$x))
# intersection of lines 1 and 3

最简单的方法是做代数: a1 + a2 * (B - a3) = a4 + a5 * (B - a6) 意思是

a1 <- c(3050, ...)
a2 <- c(0.05, ...)
etc.
B <- (a4 - a1 + a2 * a3 - a4 * a6) / (a2 - a5)

将在没有循环的情况下一次解决所有问题。