2011-08-23 5 views
5

私のタブデリムファイルを手動で保存します。私は、データを保存するときにディレクトリとファイル名を選択するようにしたいと考えています。 (例として、個々のファイルを1つのファイルにまとめて保存したいのですが)。ファイルを保存する前に対話的にユーザーにfilenameを問い合わせてください

通常、私はwrite.tableを使用しますが、write.tableではその機能内でディレクトリパスとファイル名を定義しますが、希望のディレクトリに任意の名前でファイルを保存します。

答えて

4

annoyingly tcltkパッケージには '名前を付けて保存'機能がありません。既存のファイルを選択するためのファイルセレクタしかありません。

幸いにもあなたには、いくつかのTCL呼び出しによってDIYアプローチを取ることができます。

require(tcltk) 
write.table(yerdata,file = tclvalue(tcl("tk_getSaveFile"))) 

tk_choose.files関数ソースが必要な場合はTCL(「tk_getSaveFile」)へのよりよいインタフェースを記述するためのテンプレートとして使用することができます。パッケージ内の明白な不作為であるように見えるん:tcltkしかし...

11

はちょうどこのように、file.choose()機能を使用します。

write.table(yerdata, file = file.choose(new = TRUE)) 

Windowsでは、少なくとも、それがためのダイアログが表示されます保存-としてコマンド。

+0

おかげさまで、ありがとうございますが、save-asコマンドのためのOS標準のダイアログを開き、save.thereのオプションはありません。 – Dinesh

+0

問題ではありません - あなたが望むファイル名を入力して、開いてください。ファイルが存在しない場合、Rは作成するかどうかを尋ねます。 –

+3

そのアドバイスはOS固有のものである必要があります(Macでは成功しません)。 –

0

readlineを使用すると、完全パスとファイル名(またはプログラムでディレクトリを選択する場合はファイル名のみ)を入力するように指示し、その値を単に渡すだけですwrite.table。対話形式でRを実行する際に?readlineあたりとして、これは本当にのみ動作することを

FILE_PATH <- readline(prompt = "Enter a full path and file name: ") 
#Some checking to make sure you got a valid file path... 
write.table(yerdata, file = FILE_PATH) 

注:ここでのスケッチです。

1

gWidgetsの使用:

gfile("Save yerdata", type = "save", handler = function(h, ...) 
{ 
    write.table(yerdata, file = h$file) 
}) 
0

それはtcltk2パッケージはtcltkを改良したものであり、今2017年であるので:

library(tcltk2) 
filename <- tclvalue(tkgetSaveFile()) 
if (!nchar(filename)) { 
    tkmessageBox(message = "No file was selected!") 
} else { 
    tkmessageBox(message = paste("The file selected was", filename)) 
} 

フィルタの使用については、JPG/JPEGとして保存する必要があるとします。

jpeg_filename <- tclvalue(
    tkgetSaveFile(initialfile = "foo.jpg", 
       filetypes = "{ {JPEG Files} {.jpg .jpeg} } { {All Files} * }") 
) 
関連する問題