差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
memo:r [2015/08/02 00:20] hasegawa |
memo:r [2016/07/17 04:22] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | {{tag>R tips windows osx}} | ||
- | ====== Rに関するあれこれ ====== | ||
- | ===== 出力を色づけ ===== | ||
- | |||
- | download.file("http://cran.r-project.org/src/contrib/Archive/colorout/colorout_0.9-9.tar.gz", destfile = "colorout_0.9-9.tar.gz") | ||
- | |||
- | install.packages("colorout_0.9-9.tar.gz", type = "source", | ||
- | repos = NULL) | ||
- | |||
- | ===== VimでR ===== | ||
- | |||
- | http://qiita.com/kirishima274/items/56233d5cd830d099b28f | ||
- | |||
- | |||
- | Vim-R-pluginを使う | ||
- | |||
- | NeoBundle 'vim-scripts/Vim-R-plugin' | ||
- | |||
- | vimcomを入れる | ||
- | |||
- | ダウンロード | ||
- | |||
- | download.file("http://www.lepem.ufc.br/jaa/vimr/vimcom_1.2-6.tar.gz", | ||
- | destfile = "vimcom_1.2-6.tar.gz") | ||
- | |||
- | インストール | ||
- | |||
- | install.packages("vimcom_1.2-6.tar.gz", type = "source", | ||
- | configure.args="--enable-clientserver", | ||
- | repos = NULL) | ||
- | |||
- | 失敗するので, | ||
- | |||
- | install.packages("vimcom_1.2-6.tar.gz", type = "source", | ||
- | repos = NULL) | ||
- | |||
- | |||
- | ===== Proxyの設定 ===== | ||
- | プロクシ,プロクシー | ||
- | |||
- | Windowsではシステム設定を利用するために,Rの起動オプションに | ||
- | internet2 | ||
- | を付ければ良い(頭に半角のハイフン2つ付けること). | ||
- | |||
- | osxでは,ホームディレクトリの.Rprofileに | ||
- | Sys.setenv("http_proxy"="http://proxy.com:8080") | ||
- | を書いて置いておけば良い. | ||
- | 逆に,プロクシを使いたくなければ上記の記述をコメントアウトすればよい. | ||
- | (UNSWで秋田高専のプロクシ設定を使おうとして困った.システム設定やbash_profileやらなんやら見直したけれどどうにもならず.たまたま見かけた記事で起動オプションをRprofileに書くことを見かけて解決 2012/10/10) | ||
- | |||
- | osxでのRprofileの設定例を奥村先生がさらしてくれている. | ||
- | http://oku.edu.mie-u.ac.jp/~okumura/stat/Rprofile.html | ||
- | |||
- | ===== xdr形式での保存 ===== | ||
- | |||
- | save(オブジェクト, file="******.xdr") | ||
- | でオブジェクトをまるっとバイナリで保存できる. | ||
- | バイナリなので,当然テキストエディタで編集は出来ないが,それを補って余りある利点がある. | ||
- | - ファイルサイズがかなり抑えられ,そのため読み込み・書き出しが早い(特に,疎行列みたいなデータだと効果大.多分aaaaaをAみたいな圧縮かけているんだろう).一々テキストファイルを読み込むとすごく時間がかかる.もちろん保存も同様. | ||
- | - プラットフォーム非依存のため,Linux-Windows間のデータのやりとりが楽.学生に渡すためにnkf使ってエンコード変更とか正直めんどくさかった. | ||
- | |||
- | 読み込みは | ||
- | load(file="******.xdr") | ||
- | |||
- | ドクターの頃使っていたのに,何故今まで思い出さなかったんだろうか... | ||
- | |||
- | と思っていたら,去年北海道支部に後輩の連名として出した時のスクリプトで使っていた. | ||
- | ぼけてる | ||
- | |||
- | ===== Rguiの設定 ===== | ||
- | |||
- | ==== ヘルプの表示方法を変更 ==== | ||
- | インストール後にヘルプの表示方法を変更するには, | ||
- | C:\R\R-*.*.*\etc\Rprofile.site | ||
- | の以下を編集する. | ||
- | # to prefer Compiled HTML help | ||
- | #options(chmhelp=TRUE) | ||
- | # to prefer HTML help | ||
- | options(htmlhelp=TRUE) | ||
- | 上記はブラウザでhtmlヘルプを見る場合の設定(Firefoxのアドオン[[http://maru.bonyari.jp/mouseoverdictionary/|MouseoverDictionary]]と組み合わせると幸せになる) | ||
- | |||
- | 参考サイト:[[http://www.okada.jp.org/RWiki/?%BD%E9%B5%E9%A3%D1%A1%F5%A3%C1%20%A5%A2%A1%BC%A5%AB%A5%A4%A5%D6(7)#pbadd398]] | ||
- | |||
- | ==== Rで使用するメモリサイズの変更 ==== | ||
- | 1500MBに設定する場合,Rguiの起動オプションに以下を追加する.なお,Wiki構文の制限により引用符を入れているが,実際は不要 | ||
- | ''--max-mem-size=1500M'' | ||
- | Rで作業中に使用しているメモリを確認するには, | ||
- | memory.size() | ||
- | |||
- | 2012/11/26追記 | ||
- | |||
- | Mac OSX 10.8.2,R version 2.15.2環境 | ||
- | シェルから | ||
- | R --max-mem-size=1500M | ||
- | WARNING: unknown option '--max-mem-size=1500M' | ||
- | Rを起動後, | ||
- | memory.size() | ||
- | [1] Inf | ||
- | 警告メッセージ: | ||
- | 'memory.size()' は Windows 固有の関数です | ||
- | 使えないようだ. | ||
- | |||
- | ===== Rで統計・多変量解析 ===== | ||
- | |||
- | 「Rの基本データ構造、よく使う関数紹介」というエントリが分かりやすくて,とっかかりに適していると思った. | ||
- | http://d.hatena.ne.jp/syou6162/20080725/1216968631 | ||
- | |||
- | ==== 推定・検定 ==== | ||
- | |||
- | 正規分布におけるZ_{\alpha / 2}(パーセント点)の求め方 | ||
- | alpha <- 0.05 | ||
- | qnorm(1-alpha/2) | ||
- | |||
- | ==== Rで重回帰分析 ==== | ||
- | y <- iris[,1] | ||
- | x1 <- iris[,2] | ||
- | x2 <- iris[,3] | ||
- | x3 <- iris[,4] | ||
- | summary( lm(y~x1+x2+x3) ) | ||
- | |||
- | ===== 制御文字 ===== | ||
- | |\' |一重引用符 | | ||
- | |\" |二重引用符 | | ||
- | |\n |改行 | | ||
- | |\t |タブ文字 | | ||
- | |||
- | ===== データの取扱い ===== | ||
- | [[memo:r:datamanipulationwithr|Rでのデータの取扱い]] | ||
- | |||
- | ===== グラフィックス関連 ===== | ||
- | |||
- | ==== 色 ==== | ||
- | 2013/07/25 | ||
- | |||
- | 標準で入っているカラーパレット | ||
- | rainbow(7) | ||
- | heat.colors(7) | ||
- | に満足できなくて良いのがないか探したら, | ||
- | http://d.hatena.ne.jp/harapon1012/20120927/1348701606 | ||
- | で良いものが紹介されていた. | ||
- | library(plotrix) | ||
- | smoothColors("blue",2,"white",2,"red") | ||
- | で青と白の間の色をグラデーションで2つ,白と赤の間の色をグラデーションで2つ,元の3つとあわせて7色の色が用意される. | ||
- | |||
- | その他参考になるのは http://www.okada.jp.org/RWiki/?R%A4%CB%A4%AA%A4%B1%A4%EB%BF%A7%A4%CE%CC%BE%C1%B0 | ||
- | |||
- | ==== 軸ラベルの工夫 ==== | ||
- | 2010/02/01 | ||
- | |||
- | 任意の軸ラベルをつける方法 | ||
- | |||
- | RjpWikiの記事 http://www.okada.jp.org/RWiki/?%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%A4%CE%A5%CF%A5%C3%A5%AF#content_1_1 | ||
- | を参考に,Y君(あ,どっちもだ)の卒業研究に使えるように少しアレンジした. | ||
- | |||
- | plot( iris[, 1], | ||
- | xlab = "", | ||
- | ylab = "Sepal.Length", | ||
- | xaxt = "n", # x軸を描かない | ||
- | cex.lab = 1, | ||
- | type="h") | ||
- | axis( side = 1, # x軸を描く | ||
- | at = seq(1, nrow(iris), by = 50), # 1からnrow(iris)まで50刻みで軸ラベルを描く | ||
- | label = iris[ , 5][seq(1, nrow(iris), by = 50)], # アヤメの種名を軸ラベルにする."at"引数と長さを揃えること | ||
- | cex.axis = 0.8, # 軸ラベル文字サイズの拡大率 | ||
- | lwd.ticks = 0, | ||
- | las = 2) | ||
- | |||
- | ==== plot関数の点プロットの記号 ==== | ||
- | 引数pchで指定する. | ||
- | |||
- | 例 | ||
- | |pch=1|○| | ||
- | |pch=2|△| | ||
- | |pch=3|+| | ||
- | |pch=4|×| | ||
- | |pch=5|◇| | ||
- | |pch=6|▽| | ||
- | |pch=7|□に+を重ねたもの| | ||
- | |pch=8|*| | ||
- | |pch=9|◇に+を重ねたもの| | ||
- | |pch=10|○に+を重ねたもの| | ||
- | |pch=11|▽に△を重ねたもの| | ||
- | |pch=12|□に+を重ねたもの| | ||
- | |pch=13|○に×を重ねたもの| | ||
- | |pch=14|□にVを重ねたもの| | ||
- | |pch=15|■| | ||
- | |pch=16|●| | ||
- | |pch=17|▲| | ||
- | |pch=18|◆| | ||
- | |pch=19|●| | ||
- | |pch=20|●(小さい) | | ||
- | |||
- | ==== ggplot2 ==== | ||
- | |||
- | そのうち使おう | ||
- | library(ggplot2) | ||
- | quartz(width=6,height=6, family="HiraKakuPro-W3") | ||
- | origin.gg <- ggplot(data, aes(x = OriginLongitude, y = OriginLatitude)) + xlim(kRangeLong) + ylim(kRangeLat) | ||
- | ## 出発地点のヒートマップ | ||
- | print( | ||
- | origin.gg + geom_bin2d() + labs(x = "Longitude", y = "Latitude") | ||
- | ) | ||
- | | ||
- | dest.gg <- ggplot(data, aes(x = DestLongitude, y = DestLatitude)) + xlim(kRangeLong) + ylim(kRangeLat) | ||
- | ## 到着地点のヒートマップ | ||
- | print( | ||
- | dest.gg + geom_bin2d() + labs(x = "Longitude", y = "Latitude") | ||
- | ) | ||
- | |||
- | テキスト追加レイヤー | ||
- | annotate("text", label = "Map data(c)OpenStreetMap" | ||
- | , x = 141.350, y = 43.042, base_size = 0.8 | ||
- | ) | ||
- | |||
- | 因子水準で色を変えた折れ線グラフ(グラフとして適当ではないが) | ||
- | print( | ||
- | ggplot(data.frame(iris, id = 1:nrow(iris)), aes(x = id, y = Petal.Length, colour = Species)) | ||
- | + geom_point() | ||
- | + geom_line(aes(group = interaction(Species))) | ||
- | |||
- | |||
- | とても参考になる http://d.hatena.ne.jp/triadsou/20100528/1275042816 | ||
- | |||
- | ==== ループの途中で画像等を出力 ==== | ||
- | ループを使って,パラメータ(実験条件)を変えながら計算させることがよくある.そしてその時に,各条件での計算結果(場合によっては過程も)を異なるファイル名で出力したくなる. | ||
- | |||
- | そのような場合にはeval(parse(text = "実行される文字列"))を使えば良い.そして,textに渡す文字列はpaste関数などで用意する. | ||
- | for (i in 1:3) { | ||
- | # ファイル名をループ制御変数で変えながらCSVで書き出し | ||
- | eval(parse(text = paste("write.csv(iris[,1:4],file=\"IrisData", i, ".csv\", row.names=F)", sep = ""))) | ||
- | | ||
- | # プロットはprintで囲った方が良い(囲わないと上手く動かないことがある) | ||
- | print(plot(iris[, 1:4])) | ||
- | | ||
- | # ファイル名をループ制御変数で変えながらPDFで保存 | ||
- | eval(parse(text = paste("dev.copy(pdf, file=\"IrisData", i, ".pdf\")", sep = ""))) | ||
- | | ||
- | # 作図デバイスを閉じる | ||
- | dev.off() | ||
- | } | ||
- | 実行すると,ワーキングディレクトリに | ||
- | IrisData1.csv,IrisData2.csv,IrisData3.csv,IrisData1.pdf,IrisData2.pdf,IrisData3.pdfというファイルが出力される. | ||
- | |||
- | ---- | ||
- | |||
- | 連番ファイル名を0埋め桁揃えしたい場合,zshのzmvを使うのが便利. | ||
- | |||
- | 参考 http://qiita.com/ponko2@github/items/31af073608aa20fa57e4 | ||
- | |||
- | zmvを使うため .zshrc に | ||
- | autoload zmv | ||
- | を記述 | ||
- | |||
- | 上記のPDFファイル(IrisData1.pdf,IrisData2.pdf,IrisData3.pdf)を4桁数字で埋める(IrisData0001.pdf,IrisData0002.pdf,IrisData0003.pdf)には, | ||
- | zmv 'IrisData(*).pdf' 'IrisData${(l:4::0:)1}.pdf' | ||
- | とすれば良い. | ||
- | 2013/07/25追記 | ||
- | |||
- | |||
- | ===== EclipseでR ===== | ||
- | [[memo:R:StatET|EclipseでR]] | ||
- | |||
- | ===== Rで文芸的プログラミング ===== | ||
- | [[memo:R:sweave|Rで文芸的プログラミング]] | ||
- | |||
- | ===== RとLaTeX ===== | ||
- | Rで作成した表(に限らずオブジェクト)をHmiscパッケージのlatex関数でLaTeXで使えるテーブル形式に変換できる. | ||
- | |||
- | 色々オプションがあるが,それらはマニュアルを参照.以下,fileオプションについてだけ書く | ||
- | file="filename.tex" | ||
- | でファイルに保存出来るが,自動的にLaTeXでコンパイルして結果をdviウェアで開こうとする. | ||
- | macで使っていると,X11が必要なxdviで開こうとするのでうっとうしい. | ||
- | file="" | ||
- | とすると,コンソールへの出力のみでファイル保存もコンパイルもされない. | ||
- | けれど,ファイルは保存して欲しい. | ||
- | |||
- | マニュアルに対処法が載っていた. | ||
- | 通常,latex関数は | ||
- | latex(obj, file="filename.tex") | ||
- | のように関数を呼び出して使うが, | ||
- | a <- latex(obj, file="filename.tex") | ||
- | のように,適当なオブジェクトに代入するとLaTeXからのメッセージが出なくなる. | ||
- | |||
- | |||
- | ===== RでGIS ===== | ||
- | [[memo:R:rgis|RでGIS]] | ||
- | |||
- | ===== Rでテキストマイニング ===== | ||
- | [[memo:R:rtextmining|Rでテキストマイニング]] | ||
- | |||
- | ===== Rで機械学習 ===== | ||
- | [[memo:R:RMachineLearning|Rで機械学習]] | ||
- | |||