我正在尝试在RScript中使用从命令行输入的参数运行DESeq。我使用optparse解析用户参数,并尝试将设计参数传递到DESeqDataSetFromMatrix()函数中。
我直接测试了该函数,它完美地工作:
然而,如果我尝试传递变量
我直接测试了该函数,它完美地工作:
DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl,
colData=coldata, design=~taxonomy)
然而,如果我尝试传递变量
opt$design
(它是一个字符串 =“〜taxonomy”),我会得到以下错误:DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl,
colData=coldata, design=opt$design)
错误:$ 运算符对于原子向量无效 执行已停止
我尝试了 noquote()
,各种组合的cat
/paste
和创建整个命令作为字符串传递给DESeqDataSetFromMatrix()
函数,但都没有成功。任何建议将不胜感激。
解决方案
感谢Ben Bolker下面的答案,以下内容可行:
DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl,
colData=coldata, design=as.formula(opt$design))
)需要成为公式的一部分。我使用了```as.formula("taxonomy")```。 - Muslimbek Abduganiev