hifiii 2023-12-21 15:23 采纳率: 0%
浏览 149
已结题

R语言出现subscript out of bounds

问题遇到的现象和发生背景

对disease.txt内基因进行机器学习筛选时,出现subscript out of bounds
“1.norexp_GSE57782.txt”为基因表达矩阵
“disease.txt”内为基因

操作环境、软件版本等信息
> rt=read.table(inputFile, header=T, sep="\t", check.names=F)
> rt=as.matrix(rt)
> rownames(rt)=rt[,1]
> exp=rt[,2:ncol(rt)]
> dimnames=list(rownames(exp),colnames(exp))
> data=matrix(as.numeric(as.matrix(exp)),nrow=nrow(exp),dimnames=dimnames)
> data=avereps(data)
> data=t(data)
> data=data[,read.table("disease.txt", header=F, sep="\t", check.names=F)[,1]]
Error in data[, read.table("disease.txt", header = F, sep = "\t", check.names = F)[,  : 
  subscript out of bounds

在读取数据时出现subscript out of bounds错误

我想要达到的结果

解决报错

  • 写回答

17条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2023-12-21 15:24
    关注
    获得0.60元问题酬金

    由人工智能和答主提供,可以参考如下,如果回答的不正确,及时评论区回复,我追加回答,谢谢。


    这个错误是因为在筛选基因表达矩阵时,索引超出了数据的范围。为了解决这个问题,你需要确保筛选的基因在数据中存在。你可以尝试以下方法:

    1. 检查 "disease.txt" 文件中的基因是否都在 "1.norexp_GSE57782.txt" 文件中。你可以使用以下代码来查看两个文件中的基因:
    genes_in_disease <- read.table("disease.txt", header=F, sep="\t", check.names=F)[,1]
    genes_in_expression <- colnames(rt[,2:ncol(rt)])
    intersect(genes_in_disease, genes_in_expression)
    
    1. 如果上述方法找到了交集,那么你可以继续使用交集中的基因进行筛选。例如,如果你发现交集中有 "geneA" 和 "geneB",你可以这样筛选:
    data <- data[, geneA]
    data <- data[, geneB]
    
    1. 如果没有找到交集,那么你需要检查 "disease.txt" 文件中的基因是否正确。你可以使用以下代码来查看 "disease.txt" 文件中的基因:
    read.table("disease.txt", header=F, sep="\t", check.names=F)[,1]
    

    希望这些建议能帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 创建了问题 12月21日