簡體   English   中英

在全球環境中隱藏數據

[英]Hide data in global environment

有沒有一個function允許數據隱藏在全局環境中但仍然可以訪問?

例如,我有一個很長的腳本,多達 100 多行,而我的全球環境看起來很混亂,太多了,讓我的大腦很難找到必要的東西。

我搜索了類似的問題,它們涉及創建 package,坦率地說,我現在沒有時間學習。

如果您將所有不想出現在全局環境中的對象命名為以點 ( . ) 開頭,例如: .foo <- 'bar' object 將是可訪問的,但將隱藏在全局環境中或任何ls()調用:

> .foo <- 'bar'
> .foo
[1] "bar"
> ls()
character(0)
> 

編輯:添加一個工作示例

可能的解決方案是:

  1. 一旦不再需要對象就刪除它們
  2. 將相關變量放入列表中(你好lapplysapply
  3. 移動到一個單獨的自定義環境( new.env()
  4. 簡化腳本以不使用盡可能多的對象
  5. 以批處理模式運行腳本並完全錯過環境的樣子

聽起來像一個 XY 問題,100 行非常小,很可能您使用了太多臨時變量或正在對應該在列表中的對象進行編號。

你也沒有提到為什么你不喜歡你的環境“凌亂”,我猜你可能不喜歡ls()的 output ?

那么也許你會很高興了解ls()pattern參數,它允許你過濾結果,主要用於前綴或后綴,如下例所示:

something <- 1
some_var <- 2
another_var <- 3
ls(pattern ="^some")
#> [1] "some_var"  "something"
ls(pattern="var$")
#> [1] "another_var" "some_var"

代表 package (v0.3.0) 於 2019 年 11 月 17 日創建

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM