当我使用R进行回归分析时,下标越界错误
当我运行以下代码时,我收到:当我使用R进行回归分析时,下标越界错误,r,error-handling,R,Error Handling,当我运行以下代码时,我收到: "Error in coef(summary(linear))[6, 1] : subscript out of bounds 以下是我运行的代码: setwd("E:/test_analysis/TNBC") data=read.table("gene_snp_regression.csv",header=T,sep=",") result <- NULL for (i in 10:7
"Error in coef(summary(linear))[6, 1] : subscript out of bounds
以下是我运行的代码:
setwd("E:/test_analysis/TNBC")
data=read.table("gene_snp_regression.csv",header=T,sep=",")
result <- NULL
for (i in 10:708){
linear <- lm(data[, 6] ~
data[,2]+data[,3]+data[,4]+data[,5]+data[,i], data = data)
x.inv <- try(solve(coef(summary(linear))[6,4]),silent = TRUE)
if ("try-error" %in% class(x.inv)) pvalue <- "NA"
else pvalue <- coef(summary(linear))[6,4]
beta <- coef(summary(linear))[6,1]
X <- cbind(beta, pvalue)
result <- rbind(result, X)
}
write.csv(result,"sig1_genesnp.csv",row.names = T, quote = F)
但是在我运行代码之后,我收到了:“coef中的错误(summary(linear))[6,1]:下标超出范围
以下是coef(汇总(线性))的结构
[6,1]
应该在第一列中选择第六个元素。这让我相信循环中出现了问题。如何处理这个问题,有很多调试选项
在for循环内部,您可以:
(1) 插入打印语句
print (i) # it will let you know where the problem occurs
print(dim(coef(summary(linear)))) # see dimensions of the result
(2) 插入浏览器()
然后按n
(或enter)手动单步执行代码以执行一行,或按c
以运行整个循环一次
在R会话中,可以设置
options(error = recovery)
当发生错误时,R将停止,并提供给您检查各种环境。此时,您可以通过检查所有元素来确定错误的根本原因
手动设置
i
并逐步通过代码,检查每个元素。您看过coef(摘要(线性))的结构了吗?
?请编辑您的原始问题。是的,我得到了coef(摘要(线性))与我上面粘贴的结果完全相同。但是当我运行整个代码时,我出现了错误,并错过了正确的pvalue和Estimate value。您可以粘贴输出的结构(str()
)吗?请不要使用注释来共享您的结果。编辑您的原始问题。您可以花几分钟的时间学习如何粘贴。
print (i) # it will let you know where the problem occurs
print(dim(coef(summary(linear)))) # see dimensions of the result
browser()
options(error = recovery)