R 函数无法识别变量

  • 本文关键字:识别 变量 函数 r
  • 更新时间 :
  • 英文 :


我不是很熟悉R中的循环,并且我很难陈述一个变量,这样它就可以被函数DESeqDataSetFromMatrix识别。

是一个整数表。是包含示例id和与pls相对应的条件的数据帧。我验证了以下步骤在使用的单个元素时不会出错。Run successfully .

我回顾了R中引用变量的相关文章:如何在R循环中引用变量名?如何在for循环中引用变量?

根据这些帖子,我在第3行用单括号,双括号和&;as.name&;修改了I。没有运气。DESeqDataSetFromMatrix正在读取~之后的文本,并报错。

cond=c("wt","dhx","mpp","taz")
for(i in cond){
dds <- DESeqDataSetFromMatrix(countData=pls,colData=metaData,design=~i, tidy = TRUE)
"sizeFactors"(dds) <- 1
paste0("PLS",i)<-DESeq(dds)
pdf <- paste(i,"-PLS_MA.pdf",sep="")
tsv <- paste(i,"-PLS.tsv",sep="")
pdf(file=pdf,paper = "a4r", width = 0, height = 0)
plotMA(paste0("PLS",i),ylim=c(-10,10))
dev.off()
write.table(results(paste0("PLS",i)),file = tsv,quote=FALSE, sep='t', col.names = NA)
}

用括号表示一个意外的符号错误。单独使用它,DESEqDataSetFromMatrix试图读取"i"从我的元数据列。

是R只是不能读取变量在某些情况下?一般来说,在R之外用一种更直接的语言编写循环,然后作为独立命令推送是不是更好?谢谢你的帮助,我希望有一个简单的解决办法。

对于其他可能在循环DESeq2函数时遇到麻烦的人,上面的评论解决了我的问题。

正确的输入:

dds <- DESeqDataSetFromMatrix(countData=pls,colData=metaData,design=as.formula(paste0("~", i)), tidy = TRUE)

。公式在我测试的所有DESeq函数中运行良好。

reformulation (i)在大多数情况下也很有效。

谢谢大家的帮助!

最新更新