裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

R プログラムの抽出

2011年03月03日 | ブログラミング

ホームページなどで R プログラムが紹介されているとき,プログラムとその結果が混在している R コンソールをコピー&ペーストされたものが載っていることがある。

実際に試してみるとき,キー入力すれば済むことだけど面倒だし,プログラムの先頭の > や + を除いてコンソールにペーストするのもかなり面倒。

そんなときのために以下のような関数を作っておく。

使い方は,

(1) 関数を定義(source などで読み込む。環境を保存しておけば,毎回読み込む必要はない)

(2) Web ページなどの該当部分をコピー

(3) e() を実行

(4) R コンソールにペースト

注:ときどき,最終行がコピー&ペーストされないことがある

e <- function()
{
    con <- pipe("pbpaste", "r")
    txt <- readLines(con)
    close(con)
    con <- pipe("pbcopy", "w")
    for (str in txt) {
        if (grepl("^> |^\\+ ", str)) {
            writeLines(sub("^..", "", str), con)
        }
    }
    close(con)
}


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ヒストグラムも汚い

2011年03月03日 | ブログラミング

http://scienceoss.com/2008/03/ に ggplot2 でヒストグラムを描く例がある。

library(ggplot2)
ggplot(iris)+aes(x=Sepal.Width)+geom_histogram()+facet_grid(Species~.)

というように,簡単な指定で描けるが,改めてみるまでもなく汚い。

灰色の地に灰色の棒はみじめ。プログラムを実際に動かしてみると,私の環境では,棒は真っ黒。
まあ,棒の色や地の色は変更することもできるのでどうということはないのだけど。

困るのは,ヒストグラムの階級が細かすぎるのと,きれいな数値でないこと。
まあ,自分で変えることはできるよというメッセージも出るけど,デフォルトがこれではちょっと困る。
このデータの最小値は2なのだけど,2のデータがどこに出るかと言えば「~2」のところにある。
欧米では日本と違って,「○○より大きく,□□以下」という階級定義なので,まあ,やむを得ない。
これも,階級の終わりがオープンかクローズかの指定もできるだろうけど,もはや,やる気が失せる。

さて,以下のようなプログラムで描いてみるとどうかな。

layout(matrix(1:3), 3)
old <- par(mar=c(3, 3, 0.1, 1), mgp=c(1.8, 0.6, 0))
sw <- split(iris$Sepal.Width, iris$Species)
xlim <- range(pretty(iris$Sepal.Width))
breaks <- seq(xlim[1], xlim[2], by=diff(xlim)/20)
ylim <- c(0, max(sapply(sw, function(x) table(cut(x, breaks, right=FALSE)))))
for (i in names(sw)) {
    a <- hist(sw[[i]], breaks=breaks, xlim=xlim, ylim=ylim, right=FALSE,
                col="aliceblue", main="", xlab=paste("Sepal.Width", i, sep=":"))

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村