2015-12-15から1日間の記事一覧
> search() [1] ".GlobalEnv" "package:stats" "package:graphics" "package:grDevices" [5] "package:utils" "package:datasets" "package:methods" "Autoloads" [9] "package:base" > searchpaths() [1] ".GlobalEnv" [2] "C:/Installed/R/R-3.2.2/library…
x instanceof y の代わりに、inherits(x, "y" ) が使える。
"~"の展開とかに使える。Windoesショートネームの展開にも使えるかも。
dir()とlist.files()はたぶん同じ機能。あと、lis.dirs(), list.files() が揃っている。ファイルシステム関係は、file.*() のようだ。 > file.[TAB][TAB]file.access file.append file.choose file.copy file.create file.edit file.exists file.info file.l…
ライブラリロケーションは、.libPaths()関数が管理している。この関数固有の内部変数.lib.locを持っていて、そこにディレクトリ文字列のリストが保存されている。 処理系の初期化時に、デフォルトディレクトリ R.home("library") を .Library変数にセットす…
> mirr > class(mirr) [1] "data.frame" > names(mirr) [1] "Name" "Country" "City" "URL" "Host" "Maintainer" [7] "OK" "CountryCode" "Comment" > fix(mirr) >次は保存されているCSV表示。 > mirr csv(file.path(R.home("doc"), "CRAN_mirrors.csv")) > …
> 平方根 > 平方根(2) [1] 1.414214 >
スコープ演算子:::を使う。 > utils:::.readPkgDesc(.Library, "Version") [,1] [,2] [,3] [1,] "animation" "C:/Installed/R/R-3.2.2/library" "2.4" [2,] "assertthat" "C:/Installed/R/R-3.2.2/library" "0.1" [3,] "base" "C:/Installed/R/R-3.2.2/libra…
ドットで始まる名前を使う: 安直 内部関数: 関数のフレーム内で定義する。完全に隠れる。コンパイルされてないと遅い気がする。 パッケージのプライベート: 面倒。 自分専用のスコープを準備する: そのスコープ内に定義すれば普通では見えない。.libPath…
install.packages() (引数なし)でGUIが出る。fix()やedit()、show.file()もGUIを出す。helpもGUIと言っていいかも。
パッケージ所属関数の親スコープは通常のパッケージの名前空間。名前空間からのサーチパスはグローバル環境に向かっている。グローバル環境より先のサーチパスは、パッケージの関数には無意味、あるいは有害だと思える。スコープチェーンは、グローバル環境…
" > find(".libPaths") [1] "package:base" > environment(.libPaths) > .libPathsでは、所属パッケージと環境が違う。無名環境がスコープになっている。その理由は、 > .libPaths function (new) { if (!missing(new)) { new <- Sys.glob(path.expand(new))…
http://www.is.titech.ac.jp/~mase/Rtips.html#item53 とか見ると、永続付値=deep代入を.GlobalEnvへの代入と記述している。それだと、.libPaths()のコードは理解できない。 > .libPaths function (new) { if (!missing(new)) { new <- Sys.glob(path.expan…
[追記]これは誤解[/追記] > new.env function (hash = TRUE, parent = parent.frame(), size = 29L) .Internal(new.env(hash, parent, size)) > 関数内で、new.env()すると、親スコープが親フレームになる。これはオカシイだろうよ。.GlobalEnvのparent.fram…