Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我使用R进行回归分析时,下标越界错误_R_Error Handling - Fatal编程技术网

当我使用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)