R 正在尝试运行ols_关联,但不断遇到错误消息

R 正在尝试运行ols_关联,但不断遇到错误消息,r,R,我是Mac用户,目前正在1.1.463版上运行R 尝试运行ols_相关性以获得零阶、部分和半部分相关性,但不断收到错误消息,表示 Error in terms.formula(formula, data = data) : '.' in formula and no 'data' argument 这是我运行的代码 SATV <- c(500, 550, 450, 400, 600, 650, 700, 550, 650, 550) HSGPA <- c(3.0, 3.2,

我是Mac用户,目前正在1.1.463版上运行R

尝试运行ols_相关性以获得零阶、部分和半部分相关性,但不断收到错误消息,表示

Error in terms.formula(formula, data = data) :   '.' in formula and no 'data' argument
这是我运行的代码

SATV <-  c(500, 550, 450, 400, 600, 650, 700, 550, 650, 550)
HSGPA <- c(3.0, 3.2, 2.8, 2.5, 3.2, 3.8, 3.9, 3.8, 3.5, 3.1)
FGPA <-  c(2.8, 3.0, 2.8, 2.2, 3.3, 3.3, 3.5, 3.7, 3.4, 2.9)
scholar <- data.frame(SATV, HSGPA, FGPA)
model1 <- lm(HSGPA ~SATV, data = scholar)
ols_correlations(model1)

SATV每当遇到不清楚的行为/文档时,只需检查源代码即可。在这种情况下,它是面向对象的编程,因此可能更难理解它。这里可以看到有关函数的源代码()。
第一件事是复制错误。我做了以下工作:

SATV <-  c(500, 550, 450, 400, 600, 650, 700, 550, 650, 550)
HSGPA <- c(3.0, 3.2, 2.8, 2.5, 3.2, 3.8, 3.9, 3.8, 3.5, 3.1)
FGPA <-  c(2.8, 3.0, 2.8, 2.2, 3.3, 3.3, 3.5, 3.7, 3.4, 2.9)
scholar <- data.frame(SATV, HSGPA, FGPA)
model <- lm(HSGPA ~ SATV, data = scholar)


corm2 <- function(model) {
  
  mdata <- cordata(model)
  n     <- ncol(mdata)
  r2    <- c()
  
  for (i in 2:n) {
    out <- rtwo(i, mdata)
    r2  <- c(r2, out)
  }
  
  return(r2)
}
cordata <- function(model) {
  ols_prep_avplot_data(model)
}
rtwo <- function(i, mdata) {
  dat <- mdata[, c(-1, -i)]
  summary(lm(mdata[[1]] ~ ., data = dat))[[8]]
}
ols_prep_avplot_data <- function(model) {
  m1 <- as.data.frame(model.frame(model))[1]
  m2 <- as.data.frame(model.matrix(model))[, -1]
  as.data.frame(cbind(m1, m2))
}

corm2(model)

SATV我认为它失败了,因为你的模型只有两个变量
library(olsrr)
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
ols_correlations(model)

model <- lm(mpg ~ disp + hp + wt, data = mtcars)
ols_correlations(model)

model <- lm(mpg ~ disp + hp, data = mtcars)
ols_correlations(model)