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

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日

悬赏问题

  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败