Rの備忘録 - RとLinuxと...

RとLinuxと...


Rの備忘録

Rサーチ

R関係のスライドやビデオ

# $ fc-list : family
# $ xlsfonts -fn -ipamona-gothic-*-*-*-*-*-*-*-*-*-*-*-*

 grDevices::X11.options(
   fonts=c("-ipamona-gothic-*-*-*-*-*-*-*-*-*-*-*-*", ## "-kochi-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*",
                       "-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*"))
  grDevices::pdf.options(family="Japan1GothicBBB")
  grDevices::ps.options(family="Japan1GothicBBB")

_ 自作パッケージ

  • RMeCabパッケージ データ解析・グラフィックス環境 R から日本語形態素解析ソフト和布蕪( MeCab )を呼び出して使うインターフェイス
    • R2MeCabRMeCabのサブセット.実装関数は三つだけです.
  • RCaBoChaパッケージ データ解析・グラフィックス環境 R から日本語係り受け判定ソフト南瓜( CaBoCha )を呼び出して使うインターフェイス

_ Rを最新版にした結果、RExcel が起動しなくなった場合

R を管理者権限で実行し

  1.  R のメニュー パッケージ を使って Rcmdr をインストール
  2.  R のメニュー パッケージ を使って RExcelInstaller? をインストール
  3. library(RExcelInstaller?) を実行
  4. installRExcel() を実行する
  5. Setup ウイザードの指示に従って next, install をクリックしていく
  6. 念のため RExcel を管理者権限で実行

以上です

RExcel を含め、古いRにインストールしていたパッケージをすべて新しい環境に移したい場合は

http://sunsite.univie.ac.at/rcom/  トップメニュー Wiki -> 左フレーム How to upgrade R with our packages installed

その他,中澤先生のサイトも参照ください

_ RExcel

_ R の参考書

_ 資料

準備途上 Windows 用実行ファイル &ref(): File not found: "ism20091124.R" at page "Rの備忘録";


R についての最近のメモ

_ ************

_ RとEmacsとGDBでデバッグ

_ Rcpp

_ Rcpp_DataFrame

_ Rの正規表現で URL 抽出.

とりあえず,手っ取り早くこんなもん.ただし,抽出できない場合もあるので注意.

str <- "これはhttp://cran.r-project.org/で,あれはhttp://www.yahoo.co.jp/です."

tmp <- gregexpr ("https?://.+/(.+/)*?", str)
substring(str, tmp[[1]], tmp[[1]] + attr (tmp[[1]],  'match.length') -1)

_ Rでシフト演算

_ animation

_ RHIPE - R and Hadoop Integrated Processing Environment

_ Putting Robust Standard Errors into LaTeX Tables An Extension of mtable

_ Building and checking R source packages for Windows

_ R 2.12 to 2.13 package upgrade

_ How to upgrade R on windows 7

_ Server版RStudio Ubuntu

_ 分割表をもとのデータに

_ Rで曜日と月の数を数える:

_ CRANberries

_ zapsmall

_ R_Connection

_ R_sqLite_Excel

_ if_else

_ rawToChar

_ Unicode_utf8

_ ReferenceClasses

とりあえずここを参考にサンプルを実行してみる

## a simple editor for matrix objects.  Method  $edit() changes  some
## range of values; method $undo() undoes the last edit.
mEditor <- setRefClass("matrixEditor",
     fields = list( data = "matrix",
       edits = "list"),
     methods = list(
    edit = function(i, j, value) {
      ## the following string documents the edit method
      'Replaces the range [i, j] of the
       object by value.
       '
        backup <-
            list(i, j, data[i,j])
        data[i,j] <<- value
        edits <<- c(list(backup),
                    edits)
        invisible(value)
    },
    undo = function() {
      'Undoes the last edit() operation
       and update the edits field accordingly.
       '
        prev <- edits
        if(length(prev)) prev <- prev[[1]]
        else stop("No more edits to undo")
        edit(prev[[1]], prev[[2]], prev[[3]])
        ## trim the edits list
        length(edits) <<- length(edits) - 2
        invisible(prev)
    }
    ))

xMat <- matrix(1:12,4,3)
xx <- mEditor$new(data = xMat)
xx$edit(2, 2, 0)
xx$data
xx$undo()
mEditor$help("undo")
stopifnot(all.equal(xx$data, xMat))

## add a method to save the object
mEditor$methods(
    save = function(file) {
      'Save the current object on the file
       in R external object format.
      '
        base::save(.self, file = file)
    }
)  
 
tf <- tempfile()
xx$save(tf) #$

_ Rcpp

_ 疎行列を作成する

_ boxplot

_ 適合度の検定における最小期待値

期待値が5未満のセルが20%あるといけないなどというが,一度,この根拠をしらべてみたことがある.このWikiのどこかにあるはずなのだが,みつからない.で,青木先生のサイトに情報があった.

_ CS3とEPS

Rで作成した日本語入りEPSを, Windows の CS3 で確実に読みこんでもらうには

library(Cairo)
CairoFonts(
  regular="IPA P明朝,IPAPMincho:style=Regular",
  bold="IPA Pゴシック,IPAPGothic:style=Regular,Bold",
  italic="IPA P明朝,IPAPMincho:style=Regular,Italic",
  bolditalic="IPA Pゴシック,IPAPGothic:style=Regular,Bold Italic,BoldItalic")

CairoPS(file = "/home/ishida/cairo.ps", bg="white")
plot(1:10, 1:10, main ="テスト", cex = 1.2)
dev.off()
embedFonts(file ="~/cairo.ps", outfile ="~/Cairo2.eps"  )

としておく.ここも参照

_ PDF

根本的解決に至っていないが R 上で日本語を含む PDF を作成できない. とりあえず

library(Cairo)
# CairoFonts(regular="VL ゴシック,VL Gothic:style=regular")
CairoFonts(regular="IPA P明朝,IPAPMincho:style=Regular")
CairoPS(file = "Fig", bg="white")
  hogehoge
dev.off()

として ps を作成し,変換しておく

_ RCurl

twitteR のインストールに必要だが,'curl' と 'libcurl3 に加えて,以下のコマンドの出力が示すように libcurl4-openssl-dev が必要

$ apt-cache search libcurl3-dev
libcurl4-openssl-dev - Development files and documentation for libcurl (OpenSSL)
$ apt-get install libcurl4-openssl-dev

ここ を参照

_ if の返り値

x <- 0
y <- if(x + 1){
  x + 100
}else{
  x - 100
}
y
[1] 100
# 
y <- if(x + 1) cat("TRUE\n")# else cat("FALSE\n")
if(y <- x + 1) cat("TRUE\n") else cat("FALSE\n")

_ lme による分散成分の標準誤差

  • Rjpwikiに lme の出力から分散成分の標準誤差を取り出したいという議論があるが,Batesがしばしば指摘しているようA,B) に,確率区間を使うべき.確率区間の計算は interval.lme() だから getS3method("interval", "lme") を実行して,一度アルゴリズムを確認すれば良いかなと思うのだけど.

_ .Primitives

2校演算子の定義するためにはクオートするが,呼び出しは以下のように,ダブルコーテーションも使えるのか

> str(`*`)
function (e1, e2)  
> get("*")
function (e1, e2)  .Primitive("*")
> `*`(3,3)
[1] 9
> get("*")
function (e1, e2)  .Primitive("*")
> "*"(3,3)
[1] 9
> `like this` <- 2
> "like that" <- 3
> print(`like this`)
[1] 2
> print("like that")
[1] "like that"

R-helpより

_ Cairo

_ R_64_bit_packages

_ biplot のラベルを変える

res.pc <- princomp(res, scale = 1)
rownames(res.pc$loadings) <- c("安部","麻生","福田","鳩山")
names(res.pc$scale) <- c("安部","麻生","福田","鳩山

_ 要素の長さが違うリストからテーブルを作る

もっとエレガントな方法(関数)があったような。

> a <- c("A","A", "B", "A")
> b <- c("A","B", "C", "A", "B")
> c <- c("C","A", "C", "B", "A", "B")
> 
> abc <- list(a,b,c)
> names(abc) <- c("あ","い","う")
> abc
$あ
[1] "A" "A" "B" "A"

$い
[1] "A" "B" "C" "A" "B"

$う
[1] "C" "A" "C" "B" "A" "B"

> 
> abc2 <- lapply(abc, table)
> abc2
$あ

A B 
3 1 

$い

A B C 
2 2 1 

$う

A B C 
2 2 2 

> abc3 <- lapply(abc2, data.frame)
> abc3
$あ
  Var1 Freq
1    A    3
2    B    1

$い
  Var1 Freq
1    A    2
2    B    2
3    C    1

$う
  Var1 Freq
1    A    2
2    B    2
3    C    2

> library(reshape)
 要求されたパッケージ plyr をロード中です 
> melt(abc3)
Using Var1 as id variables
Using Var1 as id variables
Using Var1 as id variables
  Var1 variable value L1
1    A     Freq     3 あ
2    B     Freq     1 あ
3    A     Freq     2 い
4    B     Freq     2 い
5    C     Freq     1 い
6    A     Freq     2 う
7    B     Freq     2 う
8    C     Freq     2 う

_ 因子の組み合わせinteraction

P・スペクター著『Rデータ自由自在』シュプリンガー社 p.89

> x <- data.frame(Age = c(20,20,30,30,30), 
                  Sex =c("F","M","M", "F", "F"),
                   Data = c(1,2,3,4,5))
> x
  Age Sex Data
1  20   F    1
2  20   M    2
3  30   M    3
4  30   F    4
5  30   F    5
> x$Combi <- interaction(x$Age, x$Sex ,drop = TRUE)
> x
  Age Sex Data Combi
1  20   F    1  20.F
2  20   M    2  20.M
3  30   M    3  30.M
4  30   F    4  30.F
5  30   F    5  30.F

因子の組み合わせの中に,該当データがない場合は注意

_ rgl パッケージを利用しようとしたらエラーが

configure: error: missing required header GL/gl.h
freeglut3, freeglut3-dev, libgl1-mesa-dev, libglu1-mesa-dev, 
mesa-common-dev,xlibmesa-gl-dev 

を追加する.

_ RでCairo

久しぶり Ubuntu で Lattice グラフを作成しようとしたら

semi-transparency not supported on device 

のメッセージ.R-2.9.0 から Cairo 周りが強化されたためか.慌てて Cairo 関連のライブラリ libcairo2 など追加.

sudo apt-get install libcairo2-dev
sudo apt-get install libxt-dev

R もコンパイルし直した.

_ Ubuntu 9.04 + ghostscript8.64 で eps に日本語

Ghostscrip がバージョンアップするたびに,設定の調整が必要になる...

ghostscript設定など、奥村さんのページが参考になった。 ほかにこことここR_font.size

Ubuntu 9.04

gs-cjk-resource
cmap-adobe-japan1
cmap-adobe-japan2

をインストールし、また cidfmap は作成しないで

grDevices::X11.options
 (fonts = 
   c("-vlgothic-gothic-medium-r-normal--*-*-*-*-*-*-jisx0201.1976-0", 
  "-adobe-symbol-*-*-*-*-%d-*-*-*-*-*-*-*"))

ps.options(family= "Japan1GothicBBB")

# あるいは

ps.options(family= "Japan1Ryumin")
plot(1:10, 1:10, main ="テスト", cex = 1.2)
dev.copy2eps(file = "~/Document/tmp/test.eps")

で OK

あるいは

ps.options(family= "Japan1")# HeiseiKakuGo-W5
plot(1:10, 1:10, main ="テスト", cex = 1.2)
dev.copy2eps(file = "~/Document/tmp/test.eps",
                    family= "Japan1GothicBBB")

_ RExcel

_ 順列

a math image デフォルトでは関数がない

prod(1:13) / prod(1:10)

U・リゲス著『Rの基礎とプログラミング技法』シュプリンガー社 では、まだ gamma() 関数を使って計算していたけど、factorial()関数が、確か R-1.9 ぐらいから実装されたので、prod(1:13)は factorial(13)でもいい。

_ 組み合わせ

a math image

prod(1:13) / (prod(1:3) * prod(1:10))

これは

choose(13,3)

がある. 一昔前のRでは、問題あって使えなかった関数だったと思うが、今は問題ないのかな。

_ pnbinom

_ Lattice_levelplot_points

_ S4Class

_ ESS

Mac 版 ESS で R を起動したらローケルが C になっている. emacs.elに以下を追記したら,日本語で起動できた.しばらく Mac でESS を使っていなかったのだが,以前は,以下2行はなくとも日本語モードで起動したような気がするのだが.

(set-locale-environment "utf-8")
(setenv "LANG"  "ja_JP.UTF-8")

ついでに ESS 上では

options(device = "quartz")

と指定する..Rprofile の設定も見直す.

_ R_epsフォント設定

_ フォント設定

R_font.sizeも参照

X11.options(fonts=c("-ipamona-gothic-medium-r-normal--0-0-0-0-m-0-jisx0212.1",
"-adobe-symbol-*-*-*-*-%d-*-*-*-*-*-*-*"))
ps.options(family= "Japan1")

####

X11.options(fonts=c("-misc-vl gothic-medium-r-normal--%d-*-*-*-*-*-jisx0201.1976-*",
   "-adobe-symbol-*-*-*-*-%d-*-*-*-*-*-*-*"))

ps.options(family= "Japan1Ryumin")

_ R_Primitive

_ R_iconv

_ R_reshape

_ Rで正規表現

_ R文字コード変換

_ 平方和の違い

_ R_order

_ R_Mixed-Effects_model

_ readRegistry

_ sapplyの使い方

_ Rのスコープと環境R_scope_environment

_ チルダ演算子 R_tilde

_ Rによる潜在意味インデキシング R_lsa

_ R_cosine距離

_ トレリス・グラフィックスパラメータの取得R_trellis.par.get

_ R_Lattice

_ Power PC 版 Mac 用パッケージ R_PowerPC

_ 二度を超えるセーブバージョンの使用廃止予定です

_ パッケージの作成 Rpackage_build

_ R-2.8.1のインストール

パッケージのインストールのたびに tcl のウィジェットが起動するのはうっとうしいので,次のようにコンパイルした.

./configure --without-tcltk

_ 多重ロジットモデルの結果の解釈方法

_ サンプルを二つに分ける方法

_ 作業中にパッケージを取り外すには

detach(package:MASS)

_ 正規分布とT分布の比較の話で

_ ローケルの確認

_ R_GGobi

_ R_ファイル処理

_ Rで漢字を読み方順に並べる RdeKanjiSort

_ R_rownamesとrow.names関数

_ R_source関数

_ eval()関数とparse()関数

_ R_文字を要素とするベクトルを結合する

_ パッケージを引用したい時

citation("hoge")

_ RjpWikiのRでグラフ理論

_ 横(列)に変数を取った横型データを縦型データフレームに変換

_ 効果を表す母数を識別するための制約

については:松田 紀之 著『質的情報の多変量解析』 の効果項の推定効果ベクトルβ, デザイン行列 X の構成,あるいはここの資料33ページをみるように.

_ R_winBUGS_structure

_ 資料:RでBayesの基礎 jags

_ 資料:RでBayesの基礎 ポアソン回帰

_ 長さが100のベクトル生成

_ xaxt_yaxt_パラメータと正規分布の図

_ RCaBoCha_make の作成

_ C++ソース内でベクトルの欠損値を見つけ出す方法

_ 因子と水準

_ 水準の再構成

_ R_カテゴリを融合する

_ R_データのカテゴリ化

_ R_ファクターの削減

_ 水準の順序化

_ 同じカテゴリには同じ色を使いたい

_ R_Alphabet

_ R_Tcl/TK

_ R_Cut関数の使い方

_ C++のソース側で文書行列の作成まで行ってしまう

_ C++のソースからRにMatrixを返す

_ R_CMD_check

_ R-2.7.0 で日本語を含んだ文字をプロット

_ 関数の表示のさせ方.忘れてた.

> methods(biplot) # で確認して
> getS3method("biplot", "default") 任意のメソッドを表示

_ R_列名が異なる二つのデータフレームを一つに統合

_ バイプロット R_biplot?

_ R_名前付きベクトルから名前を取る: as.vector() を使えば良い

_ R_文書ターム行列作成

_ R_Cソースでデータフレームを生成

_ R_Cソースで文字ベクトルを生成

_ Rパッケージ作成

_ 順序制約のあるカテゴリカルデータの扱いについては粕谷先生三中先生のサイトに説明がある

_ Rでベクトルの要素を別の集合の要素と比較する

_ Rで対応分析を実行する簡単な例 filecorresp2.R

_ R_ftable関数の出力からラベルを取り出す

_ R_二値の集計

_ R_font.size

_ R_ftableの属性

_ R_列名で列を削除する

_ Rでパッケージ作成

_ Rでリスト処理

_ 小技

_ 日本語形態素解析,和布蕪とのインターフェイス

_ RへCからリスト

_ RへCから文字列

_ Rと和布蕪

_ dim()関数が必要となる場面

_ RでBayes

_ Rでstring_Kernel

_ R_lsaで日本語

_ R_tokenizer

_ Rでコンコーダンサー

_ sprintf関数

は,ループ内ではさらに cat しないと出力しない模様

_ Rの正規表現

_ R_tmパッケージの使い方

_ R_Plot_Marginの処理

_ R_Sweave?

_ R_対数線形モデル

_ R_片側検定

_ R_複数のページに渡るグラフィックス

_ 語彙の成長曲線を描く lnre() 関数

_ R_lines

_ R_頻度区間調整

_ 調整済みRが大きくとも残差からモデルが否定される例

_ R_回帰分析とbreakpoint

_ R_Designパッケージ

_ R_SupportVectorMachines

_ ベクトルのリサイクル R_VectorRecyle

_ R_ClassificationAndRegressionTrees

_ R_Divisive_Clustering_diana関数とnj関数

_ R_Baayen

_ R_prcomp_proportion

_ R_2変量正規分布

_ R_コントラスト

_ R_4次元配列

_ R_二元配置モデルでの summary.lm のパラメータの意味

_ hidden_R_ESS

_ Macでのコンパイルオプション

_ 小技

_ 時間の取得

substring(Sys.time(),0,10)

_ 列に NA があるかをチェック

x <- c(1,3,NA,5,NA)
any(is.na(x))
which(is.na(x))
x[which(is.na(x))]
any(is.na(data$x))
data$x[which(is.na(data$x))] # それはどこ
# こんな風に書いてみても良いかな
ifelse(any(is.na( data$x )), which(is.na( data$x )), "not found")

_ 正規化された行列からの距離行列の作成

 sqrt(2 * (1 -   X %*% t(X) ) ) # 『Rで学ぶクラスタ解析』p.75より

_ anticonservative

p-value が小さすぎと... Baayen p.248

_ Rについての古いメモ

不適切な記述がかなり残っていると思われる.

お気づきの点がありましたら管理者へご連絡下さい

 
添付ファイル: filecorresp2.R 682件 [詳細] fileRprofile_Mac.txt 479件 [詳細] filemvpart_1.2-6.zip 465件 [詳細] filesom_0.3-4.zip 478件 [詳細] filekohonen_2.0.5.zip 387件 [詳細] fileishida2009May.zip 448件 [詳細] filecorresp.R 966件 [詳細] fileR-C-interface.txt 577件 [詳細]
 
Link: R_Tips0(8h) R_Baayen(63d) RMeCab(80d) R_ClassificationAndRegressionTrees(89d) R_font.size(311d) RへCから文字列(1146d) MenuBar(1505d) RCaBoCha(1642d) R_ファイル処理(1910d) Rcpp_DataFrame(2024d) Rcpp(2024d) R_64_bit_packages(2089d) R_Shift(2098d) R_Slide_Video(2112d) animation(2127d) Server版RStudio Ubuntu(2129d) R_Cソースで文字ベクトルを生成(2192d) hidden_R_Cソースでデータフレームを生成(2208d) ConvertTableToRawData(2217d) RExcel(2230d) Unicode_utf8(2236d) ReferenceClasses(2239d) Rで曜日と月の数を数える:(2251d) zapsmall(2272d) R_Connection(2274d) R_sqLite_Excel(2274d) if_else(2282d) R_Alphabet(2296d) rawToChar(2320d) Sparse_Document_Term_Matrix(2401d) R2MeCab(2416d) boxplot(2423d) Cairo(2463d) R_dnorm_dt(2482d) xaxt_yaxt_パラメータと正規分布の図(2500d) R_ftableの属性(2507d) Rでベクトルの要素を別の集合の要素と比較する(2570d) RでBayes(2595d) hidden_R_Packages(2628d) R_二値の集計(2637d) pnbinom(2637d) RSource(2659d) R_Primitive(2685d) R_列名で列を削除する(2687d) R_cosine距離(2688d) R_winBUGS_structure(2777d) R_Bayes_jags(2786d) Lattice_levelplot_points(2814d) R_Lattice(2814d) S4Class(2832d) R_eps(2866d) R_iconv(2886d) R_reshape(2896d) Rで正規表現(2897d) hidden_R文字コード変換(2901d) R_Mixed-Effects_model(2924d) 平方和の違い(2927d) R_order(2927d) readRegistry(2945d) R_sapply(2963d) R_データのカテゴリ化(2966d) R_ファクターの削減(2966d) R_reFactor(2966d) R_scope_environment(2967d) R_tilde(2969d) R_trellis.par.get(2970d) 統計的言語処理(2971d) R_PowerPC(2993d) hidden_MacMake(2994d) R_lsa(3002d) 二度を超えるセーブバージョンの使用廃止予定です(3017d) Rpackage_build(3017d) R_multinom(3038d) R_対数線形モデル(3038d) R_sample(3039d) hidden_R_ESS(3062d) R_locale(3065d) R_GGobi(3072d) RdeKanjiSort(3080d) R_rownamesとrow.names関数(3092d) R_source関数(3093d) R_文字を要素とするベクトルを結合する(3094d) R_stack(3107d) Bayes_Poisson(3113d) 長さが100のベクトル生成(3117d) RCaBoCha_make(3134d) R_Graphics_axes(3134d) CPP_VECTOR_NA_FIND(3144d) R_tempfile(3149d) R-2.7.0 で日本語を含んだ文字をプロット(3163d) R_Tcl/TK(3166d) R_rgl(3197d) R_Cut関数の使い方(3198d) R_tmパッケージの使い方(3201d) hidden_DocTermMatrix(3202d) hidden_R_Matrix(3208d) R_CMD_check(3212d) R_biplot(3224d) R_列名が異なる二つのデータフレームを一つに統合(3258d) R_文書ターム行列作成(3291d) R_lsaで日本語(3291d) 管理者(3291d) hidden_RへCから名前付きベクトルを要素とするリストを返す(3298d) hidden_Rと和布蕪(3300d) hidden_R_ordered(3305d) R_ftable関数の出力からラベルを取り出す(3305d) Rでリスト処理(3318d) R_カテゴリを融合する(3320d) R_fromOldHtml2_2(3341d) RへCからリスト(3363d) R_dim(3379d) Rでstring_Kernel(3383d) R_二元配置の分散分析計算式(3402d) R_tokenizer(3402d) Rの正規表現(3413d) R_concordancer(3414d) R_正規分布のプロット図(3430d) R_Plot_Marginの処理(3431d) R_片側検定(3435d) R_複数のページに渡るグラフィックス(3456d) R_lnre(3457d) R_回帰分析とbreakpoint(3457d) R_lines(3457d) R_str(3461d) R_頻度区間調整(3461d) R_Adj.r.squared(3461d) R_Designパッケージ(3467d) R_SupportVectorMachines(3471d) R_VectorRecyle(3471d) R_Divisive_Clustering_diana関数とnj関数(3472d) R_prcomp_proportion(3473d) R_fromOldHtml1(3474d) R_fromOldHtml1_2(3474d) R_fromOldHtml2(3474d) R_fromOldHtml3(3474d) R_fromOldHtml3_2(3474d) R_データの読み込み(3474d) R_二元配置モデルでの summary.lm のパラメータの意味(3474d) R_2変量正規分布(3477d) R_コントラスト(3477d) R_4次元配列(3477d)
Last-modified: 2013-12-18 (水) 15:07:24 (1198d)