2016-10-16 6 views
0

コマンドラインからのパラメータ入力を使用してRSeptでDESeqを実行しようとしています。私はoptparseを使用してユーザー引数を解析し、DESeqDataSetFromMatrix()関数に設計引数を渡そうとしています。R:ユーザargをDESeq2関数に渡す

私は直接の機能をテストし、それが完璧に動作します:

DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl, 
colData=coldata, design=~taxonomy) 

しかし、私は(文字列=「〜の分類法」である)変数「オプト$設計」を渡すしようとすると、私が手次のエラー:

DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl, 
colData=coldata, design=opt$design) 

Error: $ operator is invalid for atomic vectors 
Execution halted 

私は、)(猫/ペーストとDESeqDataSetFromMatrix()関数に渡す文字列として全体コマンドを作成するための様々な組み合わせをnoquoteを試してみたが、何も働いていません。アドバイスをいただければ幸いです。ありがとう!

SOLUTION:以下ベンBolkerの答えに おかげで、次のように働いていた:

DESeq_tbl <- DESeqDataSetFromMatrix(countData=counts_tbl, 
colData=coldata, design=as.formula(opt$design)) 

答えて

1

私はあなたがas.formula(opt$design)が必要だと思います。

x <- "~taxonomy" 
f <- ~taxonomy 
str(f) 
## Class 'formula' language ~taxonomy 
## ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
identical(f,as.formula(x)) ## TRUE 
+0

ありがとうございました!私はその方法について聞いていない。あなたはちょうど私の週末を救った:) – SummerEla

関連する問題