1

ディレクトリで見つかったファイルのリストをユーザーに提供し、どのファイルをロードするかを尋ね、そのファイルを新しいオブジェクトとしてロードするメニューベースの機能をセットアップしたいと思います。

コードがどのように見えるかについては、私が探しているものをあなたに伝えるための最善の試みです:

#Step 1: First create list of files arranged by date created

F<-file.info(list.files("./myfiles",pattern=".csv",full.names=TRUE))

#Order files according to date created, most recent first
F<-F[with(F, order(as.POSIXct(mtime))), ]

Files<-rownames(F)

#Step 2: Offer menu to user
Choose<-menu(Files,title="Choose which File to Load")


#Step 3: Use result of menu to load file

New_File<-read.csv(*result from menu*)

上記の架空のコードには明らかにいくつかの問題があります。

1-作業ディレクトリ内のサブフォルダーで file.info を使用するには、 full.names=TRUE を使用する必要があります。これは問題なく動作しますが、メニュー コマンドに行名を使用すると、メニュー リストが乱雑になります。作業ディレクトリ内の一連のサブフォルダーから作業している場合、ファイル名だけではなく、文字列全体が出力されます (ファイル名だけが理想的です)。

2- 順番が設定されているので、最新のファイルがリストの最後にあると思います (最初にファイルが欲しいです)。

3- 最後に、最も重要なことですが、メニュー選択の結果を使用して .csv ファイルを新しい R オブジェクトにロードする方法がわかりません。

4

2 に答える 2

0

あなたが何を望んでいるのか理解できれば、これは tcltk パッケージで既に行われています。したがって、これを演習として行っていない限り、次のように使用する方が簡単であることがわかります。

library(tcltk)
?tk_choose.files()
read.csv(tk_choose.files())
于 2013-04-13T04:23:52.500 に答える