【发布时间】:2021-06-21 13:32:46
【问题描述】:
我运行了这段代码,但是当我执行最后一行时会出现错误,我有 8 个数据集和 4 个 GPL 用于微阵列数据的元分析。
我的代码在这里:
ds.id<-c("GSE99039","GSE6613","GSE72267","GSE7621","GSE8397","GSE83977","GSE20141","GSE20163")
ds.plat<-c("GPL570","GPL96","GPL571","GPL97")
data.files<-paste0(ds.id,"_series_matrix.txt")
data.plat<-paste0(ds.plat,".txt")
suppressWarnings(raw <- lapply(data.files, read.delim, comment.char="!"))
raw <- lapply(raw, function(x) {rownames(x) <- x[,1]; x[,-1]})
data <- lapply(raw, function(x) {if(max(x) > 100) log2(x+1) else x})
【问题讨论】:
-
您能检查一下您在哪些步骤中收到了该错误消息吗?
-
最后一行:数据 100) log2(x+1) else x})
-
检查
raw的样子 (str(raw))。我很确定有些列不是数字的(即基因名称/id)。您必须在计算中排除这些,或者将它们移动到行名中。 -
不清楚您要做什么。如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。用语言描述你想要做什么。你似乎在做
max(x)其中x是一个不起作用的整个data.frame