ソーススクリプトで作成、変更、または参照されるすべてのワークスペースオブジェクトを識別する方法はありますか?私は職場で無作為に名付けられた何百ものオブジェクトを持っていて、「家を掃除しています」 - これについてもっと積極的にしたいと思っています。Rソースで使用されるワークスペースオブジェクトを識別する
0
A
答えて
0
最も単純な方法は、環境オブジェクトをソーシング、ソーシングしてから、古い環境オブジェクトと古いリストを比較する前に、リストに環境オブジェクトを格納することです。
ここにいくつかの疑似コードがあります。
old_objects <- ls()
source(file)
new_objects <- setdiff(ls(), c(old_objects, "old_objects"))
これにより、作成されたオブジェクトが識別されます。オブジェクトが変更されたかどうかを特定するために、リストにすべてのオブジェクトをあらかじめ格納しておいてから、それ以降同じものを実行するという方法以外の解決策はありません。
# rm(list = ls(all = TRUE))
a <- 1
b <- 1
old_obj_names <- ls()
old_objects <- lapply(old_obj_names, get)
names(old_objects) <- old_obj_names
# source should go here
a <- 2
c <- 3
# I add "old_obj_names" and "old_objects" in the setdiff as these
# were created after the call to ls but before the source
new_objects <- setdiff(ls(), c(old_obj_names, "old_obj_names", "old_objects"))
modified_objects <- sapply(old_obj_names, function(x) !identical(old_objects[[x]], get(x)),
USE.NAMES = TRUE)
modified_objects <- names(modified_objects[modified_objects])
new_objects
は確かに "C" であるとmodified_objects
は "" この例では確かにあります。明らかに、これが機能するには、old_objects
もold_obj_names
も、ソースファイルで作成または変更されていないことを確認する必要があります。
関連する問題
- 1. Mac OSで使用されるユニフォームタイプ識別子
- 2. ハンドルバーテンプレートから使用される識別子の空白
- 3. 私のCocoaPodで宣言されていない識別子を使用する
- 4. 宛先ファイルで宣言されていない識別子を使用する
- 5. Tensorflowでオブジェクト識別に訓練されたCNNモデルを使用する方法
- 6. Rの無向グラフの高速接続されたコンポーネントの識別R
- 7. C++でテンプレートと継承を使用して宣言されていない識別子を使用する
- 8. ソースとしてこれを使用してR
- 9. initWithObjects - 予想される識別子
- 10. 不明予想される識別子
- 11. resignFirstResponder予想される識別子
- 12. 識別子予想される混乱
- 13. ストーリーボードで一度作成され、アプリケーションのすべてのテーブルで使用されるグローバルUITableViewCell識別子
- 14. 識別子として識別子forvendorを使用できますか?
- 15. 使用ユニークなエントリ識別
- 16. 解析されたソースの外で宣言された型の識別子からSymbolInfoを取得
- 17. "宣言されていない識別子エラーの使用"
- 18. 宣言されていない識別子エラーの使用
- 19. 宣言されていない識別子 'arr'の使用
- 20. 宣言されていない識別子 'AppDelegate'の使用
- 21. 宣言されていない識別子 'cell'の使用
- 22. 宣言されていない識別子 'startClient'の使用ERROR
- 23. 宣言されていない識別変数の使用
- 24. 宣言されていない識別子 "customTableViewCell"の使用
- 25. エラーメッセージ "宣言されていない識別子の使用"フィールド "
- 26. 宣言されていない識別子 'a'の使用
- 27. 宣言されていない識別子 'NSMigratePersistentStoresAutomaticallyOption'の使用
- 28. 宣言されていない識別子 'NSEntityDescription'の使用
- 29. iOS Framework - 宣言されていない識別子の使用
- 30. 式が未使用の関数に解決され、未解決の識別子 'ディスパッチ'エラーが使用される
'ls'の呼び出しで、' all = TRUE'を指定すると、すべての隠しオブジェクトも取得できます。 – Choubi