【发布时间】:2017-03-29 07:38:05
【问题描述】:
我有一个错误,我无法用更小的示例重新创建,所以我希望任何人都知道在哪里查看。
问题
如 code-cmets 中所述:在矩阵的行名中找不到 rownamesX(但它们当然存在)。如果我打印未找到的名称,则会出现以下内容:
- hsaâˆ'miRâˆ'00
应该是
- hsa-miR-00
此外,我测试了一些不同的方法:
- 如果我直接在控制台的 Rstudio 中获取下标(ctrl-shift-s 热键),则代码有效
- 如果我在控制台中调用该函数,代码就可以工作(Ctrl-Enter 就行了)
- 如果下标是通过(Ctrl-Enter 就行)在主脚本中获取的,则代码不起作用
- 如果整个 main.R 是源代码(ctrl-shift-s 热键),则代码不起作用
我的环境:
- 数据矩阵
- ~200k 元素
- “type-type2-number”形式的行名
- colnames (=samples) : "S1", "S2", ...
- 呼叫:
- 主脚本
- 来源一个下标
- 获取函数
- 以数据矩阵为参数调用函数
- 来源一个下标
- 主脚本
-
功能:
myFunction <- function(rownamesX = c("type-type2-number") ,mat){ indexes <- which(rownames(mat) %in% rownamesX) # This is empty mat.part <- mat[indexes, ] # therefore his is empty resp <- mat.part[1, ] - mat.part[2, ] # therefore this yields an error }
【问题讨论】:
-
对不起,这只是一个最小的工作示例,我当时没有想到矩阵命名