このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

deep代入の例:.libPathsの環境

"<<-"の理解のために:


> find(".libPaths")
[1] "package:base"
> environment(.libPaths)

>

.libPathsでは、所属パッケージと環境が違う。無名環境がスコープになっている。その理由は、

> .libPaths
function (new) 
{
    if (!missing(new)) {
        new <- Sys.glob(path.expand(new))
        paths <- unique(normalizePath(c(new, .Library.site, .Library), 
            "/"))
        .lib.loc <<- paths[dir.exists(paths)]
    }
    else .lib.loc
}
<bytecode: 0x0000000006bd9368>
<environment: 0x0000000006bd7668>
> 

.lib.log変数をプライベートに使いたいから。