2016-10-07 6 views
0

入力としてcsvファイルを取り込み、いくつかの操作を行い、txtファイルを返す単純なスクリプトを作成しました。R - 端末でユーザー入力ファイルを使用する

1 bpseq <- read.csv(file = "/home/Desktop/bpseq.csv", header = FALSE) 
2 names(bpseq) <- c("posi", "res", "posj") #bpseq has 3 columns 
3 df <- data.frame(posi=integer(nrow(bpseq)), 
4     ... 
5     posj=character(nrow(bpseq))) 
6 df$posi <- bpseq$posi 
7 df$posj <- bpseq$posj 
7 write.table(df, file = "/home/Desktop/bpseq_CLnotation.txt", col.names = F, row.names = F, sep = "\t") 

これはうまく動作し、「Rscript mybeautifulscript.R」のコマンドで正常に実行できます。

しかし、私はユーザーが入力ファイルを選択できるようにしたい!ターミナルでそれを実行できるように、 は、私はもちろん

bpseq <- read.csv(file.choose()) 

を試してみましたが、Rに向けて、私はRStudioでそれを実行するとそれだけで正常に動作しますが、私は私の同僚が欲しい、非友好的。

このエラーから、私はfile.choose()がこれを行う方法ではないことを理解しています。この関数は、ファイルであることを前提としたコードの次の行を、名前(bpseq)、追加されたコードの2行目を読み込んでいます。

Nathalieいくつかの点で私を助けた良い回答が書いてありますが、コマンドラインでユーザー入力ファイルを取得する正しい方法がまだ分かりません。誰もこれを行う方法を知っていますか?

答えて

0

見つけました!以下のような端末で

-1 args <- commandArgs(trailingOnly = TRUE) 
0 fn <- args[1] 
1 bpseq <- read.csv(fn, header = FALSE) 

実行:コードの前のセグメントで私のコード行-1と0と変更ライン1に追加

Rscript mybeautifulscript.R inputfile.csv 
関連する問題