R 在缺失值的加权数据上运行speedlm

R 在缺失值的加权数据上运行speedlm,r,speedglm,R,Speedglm,我正在尝试对加权数据进行线性回归。 使用speedlm时,如果数据中缺少值,我会收到错误消息 library(speedglm) sampleData <- data.frame(w = round(runif(12,0,1)), target = rnorm(12,100,50), predictor = c(NA, rnorm(10, 40, 10),NA)) summary

我正在尝试对加权数据进行线性回归。
使用
speedlm
时,如果数据中缺少值,我会收到错误消息

 library(speedglm)
 sampleData <- data.frame(w = round(runif(12,0,1)),
                          target = rnorm(12,100,50),
                          predictor = c(NA, rnorm(10, 40, 10),NA))

 summary(sampleData)

有没有办法不强迫我在运行回归之前修复数据?

您应该尝试更改
na.action
选项。下面是我将
na.action
更改为
na.exclude/na.omit
时可以运行的代码

library(speedglm)
sampleData <- data.frame(w = round(runif(12,0,1)),
                         target = rnorm(12,100,50),
                         predictor = c(NA, rnorm(10, 40, 10),NA))
summary(sampleData)

linearNoWeights <- lm(formula("target~predictor"), data = sampleData)
speedLinearNoWeights <- speedlm(formula("target~predictor"), data = sampleData)

options(na.action="na.exclude") # or "na.omit"

linearNoWeights <- lm(formula("target~predictor"), data = sampleData)
    speedLinearNoWeights <- speedlm(formula("target~predictor"), data = sampleData)
库(speedglm)

sampleData为什么你反对在拟合模型之前从数据集中删除这两个观测值?@Roland我在这里展示的是一个例子,实际上我有很多数据框,NA对其余的计算很重要
 #run linear regression without weights
 linearNoWeights <- lm(formula("target~predictor"), data = sampleData)
 speedLinearNoWeights <- speedlm(formula("target~predictor"), data = sampleData)

 #run linear regression with weights
 linearWithWeights <- lm(formula("target~predictor"), data = sampleData, weights =sampleData[,"w"] )
 speedLinearWithWheights <- speedlm(formula("target~predictor"), data = sampleData, weights =sampleData[,"w"] )
Error in base::crossprod(x, y) : non-conformable arguments
In addition: Warning messages:
1: In sqw * X :
  longer object length is not a multiple of shorter object length
2: In sqw * y :
  longer object length is not a multiple of shorter object length
Called from: base::crossprod(x, y)
library(speedglm)
sampleData <- data.frame(w = round(runif(12,0,1)),
                         target = rnorm(12,100,50),
                         predictor = c(NA, rnorm(10, 40, 10),NA))
summary(sampleData)

linearNoWeights <- lm(formula("target~predictor"), data = sampleData)
speedLinearNoWeights <- speedlm(formula("target~predictor"), data = sampleData)

options(na.action="na.exclude") # or "na.omit"

linearNoWeights <- lm(formula("target~predictor"), data = sampleData)
    speedLinearNoWeights <- speedlm(formula("target~predictor"), data = sampleData)