Rには実行中のコードを含むファイルへの完全なディレクトリパスを返すコマンドがありますか?PHPの$_SERVER['SCRIPT_FILENAME']
と同様ですか?ファイルを格納するディレクトリを返す
答えて
私は3つの答えを考えることができますが、Rの実行モデルはPHPのものとは異なるため、おそらく完全に満足できるものはありません。 a)R実行可能ファイルの場所、b)ファイルを保存するためのデフォルトディレクトリの場所、c)明白な場所が指定されていない場合、Rがインストールされたパッケージを検索する場所
R.home()
#[1] "/Library/Frameworks/R.framework/Resources"
getwd()
#[1] "/Users/davidwinsemius"
.libPaths()
#[1] "/Users/davidwinsemius/Library/R/2.14/library"
#[2] "/Library/Frameworks/R.framework/Versions/2.14/Resources/library"
私はあなたが実際に望むかもしれない第四の選択肢を考えました。 CMD呼び出しでRのバッチセッションを開始した場合は、そのコマンドの最初の行でargsをリカバリできます(コールの仕方やOSに応じて):
cmdargs <- commandArgs(TRUE)
cmdargs["infile"]
最も簡単な方法は、chdir=TRUE
引数を使用してスクリプトを実行するようにsource
を呼び出すことです。その後、スクリプトはgetwd()
を呼び出すだけです。しかし、これは正しいことをするスクリプトの呼び出し側に依存します。
もう1つの方法は、各機能が通常、送信元情報を保存する(無効にすることができる)ことを認識することです。したがって、スクリプトで関数を定義すると、関数インスタンスからファイル名を抽出できます。
"C:/foo.R" に次のように入れてください:それを試してみてくださいそして、...
whereAmI <- function() attr(attr(whereAmI, 'srcref'), 'srcfile')$filename
fileName <- whereAmI()
cat("Here I am:", fileName, "\n")
cat("In folder:", dirname(fileName), "\n")
:
> source("c:/foo.R")
Here I am: c:/foo.R
In folder: c:/
それは、バイトコンパイルされた最後の関数のランダムに生成された場所ですか? –
私にとっては(R 2.14.0)ではなく、 'compiler :: enableJIT(4)'を呼んでも意味がありません。あなたは奇妙な結果を得ますか? – Tommy
私は "私はここにいます:/ var/folders/xS/xSUsVXTIHEiP7OLJg2OXmU +++ TI/-Tmp - // RtmpqeJtDX/file1f9196a0"です。そして、それはwhereAmIへの呼び出しを全く伴わなかったので、最後に定義された関数の場所であると仮定しました。 –
source
コマンド(将来のバージョンのRで変更される可能性があります)の内部に依存するため、これは少し壊れやすいものですが、ソースファイルのこの行はそれを実行する必要があります。これは、ソースファイル内のトップレベルに直接存在し、ソースファイル内の関数ではありません。
this.dir <- dirname(sys.frame(1)$ofile)
- 1. bash - 作業ディレクトリの外部にファイルを格納する方法
- 2. 別の種類のファイルを格納するディレクトリをアプリケーション内に作成する
- 3. バッチファイル:ディレクトリからファイル名を読み込み、配列に格納
- 4. androidにdbファイルを格納する
- 5. ファイルを格納するデータ型
- 6. デフォルトプロジェクトの選択を格納するファイル
- 7. テキストファイルをDirに格納し、ファイル名をリストに格納するpython
- 8. Apacheのkafkaがブローカノードにデータを格納するディレクトリ
- 9. iPhoneアプリケーションのDocumentsディレクトリに格納されたXMLファイルの解析
- 10. ファイルをデータベースに格納する方が良いか、ファイルのパスに格納する方が良いですか?
- 11. 外部ファイルとディレクトリ構造にjqueryコードを格納していますか?
- 12. 鍵を格納するときにロック状態を返すRiak
- 13. ファイルのメタデータを格納するためにMysqlにデータを格納するロジックを書く
- 14. 繰り返し要素を含む配列を格納する
- 15. フォームデータを格納するレール
- 16. ブール値を格納する
- 17. URLを格納するHttpSession
- 18. データを格納するフレームワーク
- 19. ECDSA鍵を格納する
- 20. ソーシャルメディアポストを格納するデータベーススキーマサンプル
- 21. タイムゾーンデータを格納するto_timestamp
- 22. 情報を格納する
- 23. ゲームアイテムを格納するLibgdx
- 24. ネットワークデータパケットを格納する
- 25. プライベートデータを格納するセキュリティリスク
- 26. ポリマーアプリケーションの格納と格納
- 27. 出力を格納する方法は、オブジェクトに格納するだけです。
- 28. 情報をJavaのJsonファイルに格納
- 29. Python変数をxmlファイルに格納
- 30. ファイル出力を変数に格納
コードをどのように実行していますか? –
おそらく 'getwd()'はあなたが探しているものですか?しかし、ジョシュアは答えてくれました! – Justin
@JoshuaUlrich - 私は[RStudio](http://rstudio.org/)を使用しています。 – eykanal