有用と思われるが分類困難な Tips

タイトル通りのチップス集。他に適当な場所を思いついたら移動するかも知れません。


関数オブジェクト以外のすべてオブジェクトを一括消去 (2004.1.26 r-help 記事より)

rm(list=ls()[!sapply(ls(), FUN=exists, mode="function")])

すべてのオブジェクトの消去は rm(list=ls()) です。rm(list=c("A","B")) はオブジェクト A,B を消去します。

ちなみになにをしているかというと、ls() で得られる総オブジェクト名の文字列ベクトルにたいし、exists 関数で function というモードかどうかを検査し、結果の論理値ベクトルを否定(従って関数オブジェクトだけが FALSE になる)し、それ以外の TRUE に対応するオブジェクトを rm 関数で消去。例えば現在の私のワーキング領域では次のようになっています。

> !sapply(ls(), FUN=exists, mode="function")
          A            a            b            f           fR           fd
       TRUE         TRUE         TRUE        FALSE        FALSE         TRUE
        fdd           fg          fgh       fitlm0       fitlm1       fitlm3
      FALSE        FALSE        FALSE         TRUE         TRUE         TRUE
     fitlm4           fx            i           jj           lR last.warning
       TRUE        FALSE         TRUE         TRUE         TRUE         TRUE
        lm1          lm2           mf        nlm.f       nlm.f2         nlm1
       TRUE         TRUE        FALSE         TRUE         TRUE        FALSE
       nlm2         nlm3         nlm4         nlm5       nlm5.f           op
      FALSE         TRUE         TRUE         TRUE         TRUE         TRUE

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1332d)