打印两个向量的回归线斜率的快速方法

时间:2019-01-13 13:25:24

标签: r function vector linear-regression

可以说我有以下两个向量:

years <- seq(1991, 2000, by = 1)
height <- c(30, 34, 40, 45, 66, 70, 81, NA, 90, 110)

我现在想执行一个简单的线性回归:

lm(formula = height ~ years)

我所需要的只是回归线的斜率以获得趋势值。 我有什么快速的方法或函数可以给我两个向量的回归线斜率吗?

2 个答案:

答案 0 :(得分:1)

您会这样做:

model <- lm(formula = height ~ years)

model$coefficients[2]

输出:

   years 
8.857353 

一种不太易读的方式也可以直接进行:

lm(formula = height ~ years)$coefficients[2]

答案 1 :(得分:0)

也许也是:

years <- seq(1991, 2000, by = 1)
height <- c(30, 34, 40, 45, 66, 70, 81, NA, 90, 110)
df1<-data.frame(Yr=years,Ht=height)

    lmfun<-function(df,yname,xname){
      f<-as.formula(paste0(yname,"~",xname))
      lm.fit<-do.call("lm",list(data=quote(df),f))
      coef(lm.fit) 
    }
    lmfun(df1,yname="Ht","Yr")[2] #or [1] depending on the need

输出:

     Yr 
8.857353