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

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日

悬赏问题

  • ¥50 husky+jaco2实现在gazebo与rviz中联合仿真
  • ¥15 dpabi预处理报错:Error using y_ExtractROISignal (line 251)
  • ¥15 在虚拟机中配置flume,无法将slave1节点的文件采集到master节点中
  • ¥15 husky+kinova jaco2 仿真
  • ¥15 MATLAB数据处理
  • ¥15 zigbee终端设备入网失败
  • ¥15 金融监管系统怎么对7+4机构进行监管的
  • ¥15 硬件IIC从模式的数据发送,中断数据的接收,不能用HAL库(按照时序图)
  • ¥20 QAxWidget上显示一个word文档后,如何直接在该QAxWidget上修改和保存word文档
  • ¥15 Simulink仿真报错,请问如何解决