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

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

tips

path.expand

"~"の展開とかに使える。Windoesショートネームの展開にも使えるかも。

dir()とlist.files()とfile.*()

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変数にセットす…

CRANミラーサーバーのリストとパッケージ一覧を得る

> 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…

いくつかのGUI

install.packages() (引数なし)でGUIが出る。fix()やedit()、show.file()もGUIを出す。helpもGUIと言っていいかも。

隠された名前を見る

baseだけで100個ほどある。 > ls(.BaseNamespaceEnv, pattern="^\\.", all.names=T) [1] "..getNamespace" ".__H__.cbind" [3] ".__H__.rbind" ".__S3MethodsTable__." [5] ".amatch_bounds" ".amatch_costs" [7] ".ArgsEnv" ".AutoloadEnv" [9] ".BaseNames…

seq_alongを使う。

for (i in 1:length(x)) something(i) とすると、xが空列のときにエライことになる。for (i in seq_along(x)) something(i) とする。

リストへの要素値を設定

lis[[i]] lis[i]

普通のファイルの読み込み

readLines() または scan()。見るだけなら、file.show()

ハッシュマップの実現

new.env(parent=emptyenv()) なんらかのデータの属性を使う。attr(x, "key"), attr(x, "key") 名前付きlistを使う。lis$key, lis$key

sessionInfo()

他人のトラブルシューティングとか、自分の環境を伝えるのに便利。 > sessionInfo() R version 3.1.3 (2015-03-09) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 (build 7601) Service Pack 1locale: [1] LC_COLLATE=Japanese_J…

help.search(), RSiteSearch()が便利

引数は検索文字列。

localとwith

名前空間の制御には、localとwithがある。なかなか使えるヤツ。

エンコーディング指定は、fileEncoding=

> (dcsv("data.csv", fileEncoding="utf-8"))