我正在从具有名义变量和连续变量的数据库中进行多元单变量线性回归。我正在使用StackOverflow中的循环功能。
代码在这里:
y<- data.frame(final1[-17])
x <- data.frame(final1$other$VO2.max)
out <- data.frame(NULL) # create object to keep results
for (i in 1:length(y)) {
m <- summary(lm(y[,i] ~ x[,1])) # run model
out[i, 1] <- names(y)[i] # print variable name
out[i, 2] <- m$coefficients[1,1] # intercept
out[i, 3] <- m$coefficients[2,4] # pvalue
out[i, 4] <- m$coefficients[2,1] # Estimate or beta value
out[i, 5] <- m$coefficients[2,2] # standard error of the estimate
}
names(out) <- c("y.variable", "intercept", "p.value","Estimate.beta","Std.Error")
out
当我使用仅包含数字变量的数据库时,不会发生任何问题。使用名义变量,我会收到此错误:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
NA/NaN/Inf in 'y'
在我的数据库中,自变量中没有缺失值,因变量中只有一些缺失值。 我喜欢此函数和方法来运行并呈现单变量的结果,我想创建一个包含名义和数字预测变量的最终表。
我应该怎么做,只运行数字变量,然后一次运行名义变量?
提前谢谢