RjpWiki自体へのコメントでも、雑談でもOKな掲示板です

注意:新規記事用の入力欄は以下の目次の直後にあります。各記事への追加コメントの入力欄は、各記事の後にあります。


過去の記事のアーカイブ 。アーカイブ中の記事への追加コメントは自由です。ただしあまり古い記事の場合は、最新の「なんでも掲示板」に新規に項目を立てられた方が良いかも知れません。



回答を期待する記事は原則 質問コーナー Q&A にお願いします。「なんでも掲示板」はそれ以外の本来の(長めの)コメント専用にすることを提案したいと思います。




なるほど!

(2004-06-30 (水) 23:58:28)

r-help 記事でまた嬉しくなる発見をしました。言われてみれば当然ですが。次のコードを試してみて下さい。

test1 <- function(x) 1+(x-2)*2*(x-2<0)+(x-2)*(-2)*(x-2>=0) # 論理値の使用に注目
plot(test, -1, 5)

こうした論理値の使い方を知らなければ次のように定義したでしょうね(これはこれで何も問題はないですが):

test2 <- function(x) ifelse(x < 2, 1+2*(x-2), 1-2*(x-2))

ついでに奇妙なことに気づきました。test1 は二回の論理判断をしているので、当然(?) test2 より遅くなるはずですが?!

> set.seed(222); system.time(test1(runif(1e6)))
[1] 0.38 0.30 0.69 0.00 0.00
> set.seed(222); system.time(test2(runif(1e6)))
[1] 0.72 0.33 1.06 0.00 0.00
  • 計算速度も速くなるんですねぇ!勉強になりました.例として φを平均-1,分散1の正規分布に従う確率変数,ψを平均2,分散1の正規分布に従う確率変数として
    f(x) = 0.6φ(x)+0.4ψ(x)
    となる密度 f(x) に従う乱数を生成する関数を定義してみます.
    generator <- function(n) {
      data1 <- rnorm(n)-1         # φ(x) に従う乱数
      data2 <- rnorm(n)+2         # ψ(x) に従う乱数
      data3 <- (runif(n) <= 0.6)  # 確率0.6でdata1を採択し,
      data1*data3+data2*(1-data3) # 確率0.4でdata2を採択するための手続
    }
    mydata <- generator(1000)
    (ヒストグラムと密度の推定より) .-- 舟尾? 2004-07-01 (木) 08:07:28
  • R は lisp で動いているのでしたっけ。知能的な最適化が組み込まれているのかもしれませんね。
    上の関数は,以前に拝見して,次のような書き換えをしてみたことがありました。
    >  generator <- function(n) { 
    +    data1 <- rnorm(n)-1         # φ(x) に従う乱数 
    +    data2 <- rnorm(n)+2         # ψ(x) に従う乱数 
    +    data3 <- (runif(n) <= 0.6)  # 確率0.6でdata1を採択し, 
    +    data1*data3+data2*(1-data3) # 確率0.4でdata2を採択するための手続 
    +  } 
    >  system.time(mydata <- generator(100000)) 
    [1] 0.24 0.02 0.28 0.00 0.00 
    >  generator2 <- function(n) { 
    +    (rnorm(n)-1)+3*(runif(n) > 0.6) 
    +  } 
    >  system.time(mydata2 <- generator2(100000)) 
    [1] 0.15 0.00 0.15 0.00 0.00 
    ついでに,先の関数も
    Rweb:> test1 <- function(x) 1+(x-2)*2*(x-2<0)+(x-2)*(-2)*(x-2>=0) 
    Rweb:> system.time(test1(rnorm(1000000)+2)) 
    [1] 2.79 0.13 5.94 0.00 0.00 
    Rweb:> test2 <- function(x) 1+2*(x-2)*((x<2)-(x>=2)) 
    Rweb:> system.time(test2(rnorm(1000000)+2)) 
    [1] 1.36 0.09 1.45 0.00 0.00 
    人手で最適化しても,たいした効果はないようにも見えます。 -- 2004-07-01 (木) 08:42:03
  • R は Scheme を手本にしているようですが、Lisp インタプリタではありません。 -- 2004-07-01 (木) 09:51:12
  • す、素晴らしい!鳥肌が立ちました!関数 generator2() は速度もメモリ使用量も最適化されていますね.勉強させて頂きました! -- 舟尾? 2004-07-01 (木) 10:01:49
  • 上の書き換え (rnorm(n)-1)+3*(runif(n) > 0.6) は元のコードの二つの rnorm(n) が同じベクトルという間違いをしていませんか。 -- 2004-07-01 (木) 23:47:04
  • 私も最初「間違いなのでは?」と思ったのですが、
  • 確率0.6でφ(x)に従う乱数を、確率0.4でψ(x)に従う乱数を生成する

という手順は、

  • まず平均-1,分散1の正規乱数(φ(x)に従う乱数)を生成する
  • この乱数を、確率0.4で平均2,分散1の正規乱数(ψ(x)に従う乱数)に変更する

ことと同じになると思います。変更手順は単に「φ(x)に従う乱数」に3を足すことで「ψ(x)に従う乱数」になります。え〜、私が最初に挙げたコードに無駄があったことが誤解の原因になっているわけでありまして…。申し訳ありません。 -- 舟尾? 2004-07-02 (金) 09:07:23

  • 「元のコードの二つの rnorm(n) が同じベクトルという間違いをしていませんか」舟尾さんのコメントにあるように,両者は分散が同じで平均値だけが異なる,正規乱数です。ですから,平均値の調整をするために定数を加除するだけでよいのです。 -- 2004-07-02 (金) 10:38:17
  • なるほど! 勘違い失礼。お詫びに(?)平均、分散がともに異なる二つの正規分布からの混合分布乱数発生コードを応用問題で紹介します。 -- 2004-07-03 (土) 14:20:51
    # 2つの正規分布の混合分布乱数 
    # n: 発生する混合正規乱数の総数
    # p1: 最初の正規分布の比率
    # N1: 最初の正規分布の平均、標準偏差のベクトル c(mu1, sd1)
    # N2: 2番目の正規分布の平均、標準偏差のベクトル c(mu2, sd2)
    rmixnorm <- function(n, p1, N1, N2) {
       P <- (runif(n) < p1)
       (P*N1[2] + (1-P)*N2[2])*rnorm(n) + (P*N1[1] + (1-P)*N2[1])
     }
  • Rコードの最適化例:混合正規乱数の発生コード にありがたく使わせて頂きます。 -- 2004-07-03 (土) 15:51:46
  • 問題の解析
    Rweb:> rmixnorm <- function(n, p1, N1, N2) { 
    +     P <- (runif(n) < p1) 
    +     (P*N1[2] + (1-P)*N2[2])*rnorm(n) + (P*N1[1] + (1-P)*N2[1]) 
    +   } 
    Rweb:> mean(sapply(1:100, function(i) system.time(rmixnorm(100000, 0.4, c(-1,1), c(3,2))))) 
    [1] 0.10932 
    100回やって平均を求めた。
    単に混合分布のデータを作るだけなら,乱数の発生順までランダムにする必要はない。
    Rweb:> rmixnorm2 <- function(n, p1, N1, N2) 
    + { 
    +     n1 <- floor(n*p1) 
    +     c(rnorm(n1)*N1[2]+N1[1], rnorm(n-n1)*N2[2]+N2[1]) 
    + } 
    Rweb:> mean(sapply(1:100, function(i) system.time(rmixnorm2(100000, 0.4, c(-1,1), c(3,2))))) 
    [1] 0.04744 
    これじゃ,それぞれの分布の個数が決まってしまうじゃないかというなら,個数だけはランダムに乱数で決める。
    Rweb:> rmixnorm3 <- function(n, p1, N1, N2) 
    + { 
    +     n1 <- sum(runif(n) < p1) 
    +     c(rnorm(n1)*N1[2]+N1[1], rnorm(n-n1)*N2[2]+N2[1]) 
    + } 
    Rweb:> mean(sapply(1:100, function(i) system.time(rmixnorm3(100000, 0.4, c(-1,1), c(3,2))))) 
    [1] 0.06088 
    みたいな。 -- 2004-07-03 (土) 18:28:01
  • (なるほど)^3、感服! -- 2004-07-03 (土) 19:22:16
  • ああ,わたしってほんとにうっかりもの。平均値も標準偏差も引数で決められるのに。
    Rweb:> rmixnorm4 <- function(n, p1, N1, N2)  
    + {  
    +    n1 <- sum(runif(n) < p1)  
    +    c(rnorm(n1, mean=N1[1], sd=N1[2]), rnorm(n-n1, mean=N2[1], sd=N2[2])) 
    + }  
    Rweb:> mean(sapply(1:100, function(i) system.time(rmixnorm4(100000, 0.4, c(-1,1), c(3,2)))))  
    [1] 0.05924
    時間は大して変わらないけど,可読性はずいぶん違う。 -- 2004-07-03 (土) 20:07:08
  • コメント -- 2004-07-04 (日)00:01:00
    > mean(sapply(1:100, function(i) system.time(rmixnorm4(100000, 0.4, c(-1,1), c(3,2)))))
    [1] 0.05618  
    ではなく(これは 100x5 行列の平均になってしまう)
    > mean( sapply( 1:100, function(i) system.time( rmixnorm4(100000, 0.4, c(-1,1), c(3,2)))[1] ) )  
    [1] 0.1298
    としないとまずい。
  • 最適化された関数をいろいろ紹介して頂きましたが,「本当にどれも同じ動作をするの?」という方は,データを1000個ほど用意してデータのグラフを描いてみてください.どれも同じになるはずです.-- 舟尾? 2004-07-04 (日) 00:08:36
    generator <- function(n) {
      set.seed(7777); data1 <- rnorm(n)-1
      set.seed(7777); data2 <- rnorm(n)+2
      set.seed(7777); data3 <- (runif(n) <= 0.6)
      data1*data3+data2*(1-data3)
    }
    mydata <- generator(1000)                             # mydata にデータを格納
    plot(density(mydata))                                 # データの密度を推定して描く
    
    generator2 <- function(n) {
      set.seed(7777); data1 <- rnorm(n)-1
      set.seed(7777); data1 <- data1 + 3*(runif(n) > 0.6)
    } 
    mydata <- generator2(1000)                            # mydata にデータを格納
    plot(density(mydata))                                 # データの密度を推定して描く
    
    rmixnorm <- function(n, p1, N1, N2) {
      set.seed(7777); P <- (runif(n) < p1)
      set.seed(7777)
      (P*N1[2] + (1-P)*N2[2])*rnorm(n) + (P*N1[1] + (1-P)*N2[1])
    }
    mydata <- rmixnorm(1000,0.6,c(-1,1),c(2,1))           # mydata にデータを格納
    plot(density(mydata))                                 # データの密度を推定して描く

    #ref(): The style ref(filename,pagename) is ambiguous and become obsolete. Please try ref(pagename/filename)

  • 上と同じ動作をするような,rmixnorm2() 〜 rmixnorm4() の seed の与え方は分かりませんでした…. 2004-07-04 (日) 16:18:36
  • こういうコーディング例の検証を考えると,「RUnit を使う」の考え方は無力だな〜と思うのはわたしだけでしょうか? -- 2004-07-04 (日) 16:36:54
  • set.seed(7777); rnorm(20) と set.seed(7777); rnorm(15); rnorm(5) では,両方とも同じ乱数列が作られますよ。つまり,一度同じ値で set.seed したら,その後に作られる乱数は,いくつかに分けて別々のベクトルとして付値されても,途中で別の計算があったりしても全く同じになると言うことですが。ということを考えれば,
    set.seed(7777); data1 <- rnorm(n)-1
    set.seed(7777); data2 <- rnorm(n)+2
    は,
    set.seed(7777); data1 <- rnorm(n)-1; data2 <- data1+3
    と全く同じということではないでしょうか。実際にやってみると,計算誤差によって全く同じではないことがわかったが。
    > n <- 1000
    > set.seed(7777); data1 <- rnorm(n)-1
    > set.seed(7777); data2 <- rnorm(n)+2
    > set.seed(7777); data11 <- rnorm(n)-1; data12 <- data11+3
    > sum(data12==data2)
    [1] 905
    差はどれくらいかというと
    [1] -4.440892e-16 -2.220446e-16 -2.220446e-16  2.220446e-16 -2.220446e-16  2.220446e-16 以下略
    程度 -- 2004-07-04 (日) 16:52:40
  • 乱数の不思議
    同種類の乱数だと以下のようになるが
    > set.seed(1)
    > rnorm(10)
     [1] -0.6264538  0.1836433 -0.8356286  1.5952808  0.3295078 -0.8204684  0.4874291  0.7383247
     [9]  0.5757814 -0.3053884
    > rnorm(5, mean=5, sd=10)
    [1]  20.117812   8.898432  -1.212406 -17.146999  16.249309
    この乱数列の最後の5つは
    > set.seed(1)
    > rnorm(15, mean=5, sd=10)
     [1]  -1.264538   6.836433  -3.356286  20.952808   8.295078  -3.204684   9.874291  12.383247
     [9]  10.757814   1.946116  20.117812   8.898432  -1.212406 -17.146999  16.249309
    の,最後の5つと同じになっている。
    しかし,
    > set.seed(1); rnorm(5); runif(5); rnorm(5, mean=5, sd=10)
    [1] -0.6264538  0.1836433 -0.8356286  1.5952808  0.3295078
    [1] 0.2059746 0.1765568 0.6870228 0.3841037 0.7698414
    [1]  4.942328 29.046534 12.635935 -2.990092 -6.476570
    のように途中で,異なった種類の乱数発生を挟むと,違ったものが生成されてしまうということがわかった。 -- 2004-07-04 (日) 17:21:47
  • set.seed(n) は指定した正整数 n から乱数の初期値を適当に作るものです。乱数を使う作業の結果を正確に再現するためには、一連の作業の始めに指定しておかないと、当然ながら結果は文字通りには一致しません。ただ上の参考例のように頻繁に指定しなくても例えば rmixnorm 関数を呼び出す直前に一度呼び出せば十分と(というか何度も同じ系列を使うことになりむしろ有害)おもいますが。 -- 2004-07-04 (日) 17:51:05
  • 「というか何度も同じ系列を使うことになりむしろ有害」と書きましたが、考えてみれば違ったコーディングでは全く同じ乱数系列をどういう順番で使うか異なってくるので、上記参考例のように頻繁に初期化しないと結果は文字通りには一致してくれないという「裏の苦労」かも知れませんね。もしそうならごめんなさい。」 -- 2004-07-04 (日) 18:00:08
  • 私の言葉足らずでした.すみません….私がやりたかったことは,generator(), generator2(), rmixnorm*() のそれぞれが同じ動作をするはずなので,runif() と rnorm() について全く同じ乱数系列を与えてやれば同じ結果が得られますね,という確認が出来るプログラムを書くことでした.そして先ほどまで悩んでいたのは,runif() にも rnorm() にも seed(7777) の1番目から順にseedを与えれば同じ乱数系列が得られるはずなのですが,rmixnorm2() 〜 rmixnorm4() が乱数列のどれをどの順番で使っているかが分からないので,動作確認プログラムが作成できないなぁ…ということでした.上の方がおっしゃる通り,異なった種類の乱数発生(ここでは runif() と rnorm() )を挟むと,現在の seed で生成している乱数がいくつなのか(乱数が何番目なのか)が良く分からなくなってしまうので,確実に同じ系列を得るために,頻繁に set.seed() を繰り返していた次第です.
    よく考えると,rmixnorm2() 〜 rmixnorm4() は,生成すべき片方の正規乱数群の個数のみを保存して生成しているので,generator(), generator2(), rmixnorm*() と同じ動作をさせることは出来ないですね.逆に云えば,生成すべき正規乱数群の個数の情報しか保存していないので,メモリも節約していて動作も速いということが分かりますね.いや〜,ここ(関数rmixnorm4())まで最適化できるとは….感動しております!
    よく考えると,rmixnorm2() 〜 rmixnorm4() は,生成すべき片方の正規乱数群の個数のみを保存して生成しているので,generator(), generator2(), rmixnorm*() と同じ動作をさせることは出来ないですね.逆に云えば,生成すべき正規乱数群の個数の情報しか保存していないので,メモリも節約していて動作も速いということが分かります.いや〜,ここ(関数rmixnorm4())まで最適化できるとは….感動しております!
    (追記)generator() の data1 と data2 には同じ乱数列を与えておかないと generator2() と同じ動作をしてくれませんので set.seed() をそれぞれに与えています.ホント,ややこしくてすみません…. -- 舟尾? 2004-07-04 (日) 19:10:37

日本人による新パッケージ

(2004-06-30 (水) 08:21:13)

We would like to announce the release of our software, which is now 
available through CRAN.

MNP: R Package for Fitting the Multinomial Probit Models

Abstract:
MNP is a publicly available R package that fits the Bayesian multinomial
probit models via Markov chain Monte Carlo. Along with the standard
multinomial probit model, it can also fit models with different choice
sets for each observation, and complete or partial ordering of all the
available alternatives. The computation is based on the efficient marginal
data augmentation algorithm that is developed by Imai and van Dyk (2004)  
``A Bayesian Analysis of the Multinomial Probit Model Using the Data
Augmentation,'' Journal of Econometrics, Forthcoming.

Kosuke Imai, Department of Politics, Princeton University
Jordan R. Vance, Department of Computer Science, Princeton University
David A. van Dyk, Department of Statistics, University of California, Irvine

R for Bioinformatics

nami? (2004-06-28 (月) 07:59:24)

オライリー本家から「R for Bioinformatics」が、11月に出るようです。
amazon.co.jp
日本語化されないかな〜

  • オライリージャパンの方に直接聞いたのですが、現時点では和訳出版に二の足を踏んでおられるようでした。 -- 2004-06-30 (水) 09:00:26
  • どうもありがとうございました。なんとかがんばっていただきたいところです。 -- nami? 2004-07-03 (土) 13:26:16

R の一様乱数 runif()

間瀬茂 (2004-06-27 (日) 00:35:43)

r-help にオヤッと思う記事がありました。

> set.seed(222)
> sum(duplicated(runif(1e5)))
[1] 4

つまり、10万個の一様乱数中にタイが4個(実際は2組のタイ)ある(のは奇妙ではないか)との指摘でした。例により、Ripley 教授がすかさず、R の標準的疑似乱数発生法は 2e9 個の異なる状態しかもたないから、この例は多少多めではあるが、けっして異常ではない、統計学者は誕生日問題を知っているべきだ、とコメントしていました。私自身も疑似乱数が 2e9 個の異なる値しか持てない(これは周期という意味ではなく出力時の仕様だと思います)というのは初耳で、最初驚きました。さらに、Ripley 教授のコメントでは正規乱数では二つの異なる一様乱数を併用して精度をあげているから、こうしたことは起こらないとのことです。たとえ、MT 法を使っているからとはいえ、こうしたことを知らずに使うと恐ろしいこともありそうな気がします。

  • 32ビットマシンで,8バイト実数だと,表現できる正の実数は 2^31=2147483648 通りです。出力時の仕様ということでもなく本質的なことでは?コンピュータ上の実数は有限集合なのだ。 -- 2004-06-27 (日) 09:27:00
  • MT法は内部的にはもっとたくさんのビットを使っています。さもなければ 2^19937-1 という超長周期を実現できないわけです。実際53ビット実数乱数を発生させるプログラムが公開されています。おそらく R で使っているのは(結果として)32 ビット(精度の)実数を出力するプログラムなのでしょう。速度を考え、普通の使用ではこれくらいで十分という判断なのでしょう。しかし、問題によっては 53 ビット版を使うことが必要になるかも知れません。それでも実数化して .Machine$double.eps 以上の精度が出せないのは当然ですが。ちなみに、R の実数は(他言語の single float 変数に引き渡す時に特に downgrade する場合を除き)すべて倍精度実数です。 -- 2004-06-27 (日) 10:35:15
  • 周期と相異なる乱数の個数は無関係でしょう。 -- 2004-06-27 (日) 10:49:35
  • Ripley が注意しているのは
    > qbirthday(classes=2^(53))
    [1] 111743588
    > qbirthday(classes=2^(32))
    [1] 77163 
    つまり32ビット実数一様乱数ではタイが生じる確率が 0.5 以上になるのに必要な乱数の個数は 77163 個だから 1e5 個中にタイがあっても不思議ではないということです。これがたとえば 53 ビット実数一様乱数では 111743588 個になりますから、1e5 個中にタイがあれば「タイのお頭付きの赤飯」ものになります。
    • 2004-06-27 (日) 10:59:34

package

(2004-06-26 (土) 23:33:46)

パッケージquadprogの関数solve.QP()を利用してQPを解く際、
そのパッケージ例に当てはまらないような目的関数を解くことはできないのでしょうか。できるようにするためには、どこのファイルを書き換える必要があるのでしょうか。

  • これは独り言ですか、質問ですか?質問ならば場所が不適当ですし、質問が漠然とし過ぎていて答えようがありません。 -- 2004-06-27 (日) 00:21:09

関数 getAnywhere()

間瀬? (2004-06-24 (木) 21:09:49)

また不思議な関数を発見しました。getAnywhere()。引数で与えられたオブジェクトを R が知っている検索パスから探す関数(Unix の locate コマンドみたいなもの)。不思議なのは例えば ?simpleLoess, help.search("simpleLoess") ではそんなものはないとそっけないのに、getAnywhere(simpleLoess) はしっかり探してくれること。どうも R にはドキュメント化されていない隠れ関数(ある関数の内部だけで使われる、またある総称的関数のメソッド関数)がいくつもあるらしい。


R fortunes

(2004-06-20 (日) 08:25:24)

パッケージ更新案内で見つけ、R fortunes というパッケージをインストールしてみました。Unix ユーザにはおなじみの fortune (語源はアメリカの中華料理店に置いてあるというおみくじいりのクッキー、最初は日本人が作ったという噂を聞いたことがあります) の R 版です。各種集会や、r-help 記事中から集めた cool な R 警句集で fortune() でランダムに出力したり fortune(Ripley)、fortune(11) 等で出力できます。現在はまだ60あまりですが、将来増やされるのでしょう。Ripley 氏の辛口のコメントは絶好のソースになりそうです。

  • SAS や「お間抜けな」r-help 投稿記事が格好の的になっているようです。開発者たちが日頃溜ったうっぷんを晴らしているようなふしも。いくつか見本をあげておきます。 -- 2004-06-20 (日) 14:12:32
Some of us feel that type III sum of squares and so-called ls-means are
statistical nonsense which should have been left in SAS.
  -- Brian D. Ripley
     s-news (May 1999)
To paraphrase provocatively, `machine learning is statistics minus any  checking
of models and assumptions'.
  -- Brian D. Ripley (about the difference between machine learning and
     statistics)
     useR! 2004, Vienna (May 2004)
Can one be a good data analyst without being a half-good programmer? The short
answer to that is, `No.' The long answer to that is, `No.'
  -- Frank Harrell
     1999 S-PLUS User Conference, New Orleans (October 1999)

RCC (R compiler) !

間瀬茂 (2004-06-19 (土) 23:51:47)

r-help 記事に驚くべきものを発見しました。R コンパイラー! R コードを C コードに変換するものだそうです(つまり R2C か?)。ライブラリは R のそれを使う仕組みの様です。まだ実験段階(修士論文!)のようですが、数倍の速度の向上が得られるという解説があります。また、手作業による改良を含めると百倍の速度向上が得られたという報告もあります。こうした方向ではコアチームの Tierney の実験段階のバイトコードコンパイル機構が前から有名ですが、選択肢が増えて将来が楽しみになってきました。いよいよ R が S-PLUS を凌駕することも夢でなくなって来たようなきがします。 参考1, 参考2

  • gcc, bcc に続いて rcc ですか!また凄まじい題材で修士論文を書いていますねぇ.ソースコードを C に変換するような機能を備えた商用ソフトと云えば Matlab (ウン十万!)がありますが,R はそれをも備えてしまったわけですよねぇ….一体 R はどこまで発展するのでしょうか. -- 舟尾? 2004-06-20 (日) 13:05:15
  • 参考ホームページの内容だけからは良くわからないが、R コードの一部を C のコンパイルコードに置き換えるという意味でしょうか?すると R2C でもない。R コードの一部を「その場で」内部関数化するのでしょうか?是非プロジェクト化し、将来的には R の一部に取り込んで欲しいですね。MCMC法を使う人には朗報でしょう。 -- 2004-06-20 (日) 14:07:26

R は S(-plus) 互換?

間瀬? (2004-06-13 (日) 07:16:11)

最近、J. Chambers の「データによるプログラミング」森北出版(2002) を拾い良みしていて、S-plus (Chambers の本は当然と言えば当然ながら、見たところ S-plus を前提に書いてあるようです)と R は「ほとんど互換(95%とか90%とか言われることがあります)」というしばしば見られる表現がどこまで正しいのかわからなくなって来ました(ついでに言えば私は S(-plus) の使用歴はほとんどありません)。R には無い(?)関数がしばしば登場するからです。ユーザにはたとえ一つの命令の欠如でも致命的になるからです。違いの理由は (1) 一方にはあって他方にはない関数、(2) 双方にあるが、仕様が微妙に異なり、必ずしも同じ結果を出さない、ことが原因のようです。R は S 言語の独自の移植である以上これは当然といえば当然ですが。R 開発者達は「可能な限り」 S-plus に似せることを指針としているようですが、タイムラグによる未整備、S-plus の類似関数を R 開発者の独自の考えで改良(?)を試みている、そして R 独自の関数、等の理由により差が生じてきているようです。結論として懐疑的な S-plus ユーザを改宗させる方便なら別ですが、互換性をあまり強調しない方が誤解を招かないのではという意見になってきました。(そういうフォロウ意見がありそうなので機先を制しておきますが)違いのリストを作るというアイデアもあるかとは思いますが、先に述べたように、差はしばしばタイムラグの問題であったり、出力の微妙な(ただしユーザーを困惑させるに十分な)差であったりしますから、あまり役立つとは思えません。また統計手法、数値解析手法の移植は当然(微妙に、そしてしばしば大きく異なる)アルゴリズムを使いますから、全く同じ結果を生むことは考えにくいわけです。


zipのパスワード

初心者? (2004-06-10 (木) 23:21:48)

unix上でzip圧縮した際にパスワードを設定したいのですが、
どなたかご存知な方いらっしゃいいますか?
windowsだと基本的にzip圧縮の際にパスワードを設定できるようになっているのですが・・・。
一応manコマンドで調べると-eという暗号化のオプションが存在するようなのですが出来ません。
環境はsolarisです。よろしくお願いします。

  • せめて R との関連を申し訳でも書かないと顰蹙をかううことになりますよ。次のようにすればいいのでは。 -- 2004-06-11 (金) 07:18:30
$ zip -e abc abc.tex                 # abc.zip という名前にする。名前は任意(拡張子はつけない)
Enter password:                      # パスワード入力
Verify password:                     # もう一度 
updating: abc.tex (deflated 67%)
$ ls
./ abc.tex abc.zip
$ unzip abc.zip
Archive:  abc.zip
[abc.zip] abc.tex password:          # 設定パスワードを入力
replace abc.tex? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
 inflating: abc.tex
  • 少し強引にRの話題に振りますが、圧縮アルゴリズムって公開されているのも多いですが、Rでデータ圧縮を実装した例とかはあるんでしょうか。まぁ、使い道はちょっと思いつきませんが^^; -- 2004-06-11 (金) 10:56:57
  • ?zip.file.extract もちろん R で書いてあるわけではなく、内部関数を使っているでしょう。 -- 2004-06-12 (土) 21:39:56
  • なるほど、内部にunzipのコードは持っていて、すべてのプラットホームで、unzipコマンドがない環境でも解凍はできるようですね。options(unzip=)でコマンドを別途指定することもできるのですね。勉強になりました。 -- 2004-06-13 (日) 00:29:37

R-jp, RjpWiki の来歴について

間瀬茂 (2004-06-10 (木) 21:19:54)

明日は RjpWiki の開設一周年記念日です。管理者の岡田さん、私、そして当初からの関係者も一年でここまで大きく成長するとはさすがに予想出来なかったと思います。RjpWiki の前身であるメイリングリスト R-jp (もっとも現在も休眠状態で存続し、RjpWiki のトラブル時の連絡が主機能になっていますが)の開設時期を調べてみたら 1999年4月 でしたから、それ以来と考えると優に 5 年は経過していることになります(当時の日本の R ユーザーはおそらく数十人?)。われながら「人生(そして視力)のかなりを R に捧げてしまった」と感慨ひとしおです (^_^)。ところで R-jp はマニュアル 「R-notes」(「R-intro」の前身)を翻訳するプロジェクトとして始まったのですが、それに至る経緯がすっかり記憶から抜け落ちています。私が覚えているのは、R というフリーソフトがあることを何かの折に知り、メイリングリスト R-help の購読を始めたころ、「山本@G」さんという方が、R-notes の翻訳を始めましたという記事を投稿され、お手伝いしましょうかとメイルを差し上げたことは覚えているのですが、それから R-jp 開設に至る経緯が全く思い出せません。おそらく、同じように山本さんにお手伝いを申し出た何人かがメイルで連絡を取り合うようになり、その中に岡田さんもおられ、公式にメイリングリストを立ち上げる労をとられた、で間違いないでしょうか? RjpWiki が今後も大きく発展していく(そうなると思いますが)と、最初が気になる方もでていらっしゃると思うので、記録用にメモしておきます。ところで、偉大な最初の一歩を始められた「山本@G」さん、その後消息を拝見しませんが、お元気ですか。(過去の R-jp 記事を念のためにみていて、尾野さんの名前を発見しびっくりしました。それと知らずずいぶん前からの「盟友」だったのですね。)

  • Rの日本での普及の歴史をそろそろまとめるといいかもしれませんね。RjpWiki開設以降だけでも、日本語化パッチの登場、ISMセミナー、Rによる統計解析の基礎、工学のためのデータサイエンス入門、The R Bookといろいろイベントがありましたし。 -- 2004-06-11 (金) 10:09:46

予想したとおりになるでしょうか

(2004-06-10 (木) 13:27:27)

以下のコード,出力はどうなると思いますか。
やってみて,予想したとおりになったでしょうか。
私は,驚きました。

for (i in 1:10) {
	if (i == 3) i <- i+5
	print(i)
}
  • スコープについて学ぶときにとてもよい教材ですね(print(i)がif文のスコープの外にあるからこのような出力結果になるのですね)。個人的にはこの種の間違いをよくするために「if( ){ }」を一セットと(if文内の処理がどんなに短くても必ず{ }をつけてその中に処理を書くように)して書いています -- 矢野? 2004-06-10 (木) 13:51:03
  • if 文の { } の有無は,私が意外と思ったことには関係ないのです。
    先に挙げたコードは,以下のコードと同じことを表しているので,{ } の付け忘れでびっくりしたわけではありません。 -- 2004-06-10 (木) 14:00:37
    for (i in 1:10) {
    	if (i == 3) {
                 i <- i+5
           }
    	print(i)
    }
    ついでに,試してみたらこんなことも。
    n <- 10
    for (i in 1:n) {
    	if (i == 5) {
    		n <- 20
    	}
    	print(i)
    }
    どうしても for を使わなくてはならなかった局面で(笑),出くわしたのでした。

    help を見れば,書いてあることなんですけどね。
    The index 'seq' in a 'for' loop is evaluated at the start of the
    loop; changing it subsequently does not affect the loop.
  • なるほど、forループではforループの最初のところに戻ってこないとインデックスが評価されないということなのですね。知らないとバグを書いてしまいそうです。ありがとうございました。 -- 矢野? 2004-06-10 (木) 15:51:30
  • 駄目といわれると、掟破りをしたくなるのが悲しい人間のさが。さて、どうすればループ変数を いじれるのか?-- 2004-06-10 (木) 17:35:56
  • 次も不思議ではありませんか。ループ変数が最終値で残っている。-- 2004-06-10 (木) 19:17:09
    > rm(i); for (i in 1:10) {i^2}; i
    [1] 10
  • 私のループ変数の理解がぐらついてしまって非常に混乱しておりますが…,for の括弧中の i (ループ変数) と, i^2 の i (単なる変数) が別物になっているのではないでしょうか? -- 舟尾? 2004-06-10 (木) 21:06:09
  • あくまでも推測ですが,for の最初に制御変数の集合を作って,ループに入る。リスプが基礎なので,リスト構造なんでしょう。順番に実行していって,最後の要素についての実行が終わって,次のリストがもうないことがわかった段階で,制御変数に何も割り当てないでループ終了。C などの言語のように,ループを回るたびに制御変数を更新して,条件を判定して,条件を満たす限りループするという構造ではないのでしょうね。 -- 2004-06-10 (木) 21:06:10
    > x <- c(3,2,3,8,5)
    > for (i in x) { if (i==2) x<-c(4:6); print(i)}
    [1] 3
    [1] 2
    [1] 3
    [1] 8
    [1] 5
    > x
    [1] 4 5 6
     > i
    [1] 5
  • i^2 は副作用なし(i に付値してませんから)です。 -- 2004-06-10 (木) 21:15:48
    > rm(i); for (i in 1:10) {i<-i^2}; i
    [1] 100
    こうしてみる?
    > rm(i); sum<-0; for (i in 1:10) {sum<-sum+i^2}; print(i); print(sum)
    [1] 10
    [1] 385
  • C では確か、ループ変数をループ中で変更できませんでしたっけ?それを悪用した悪質プログラムを書いたような気が。 -- 2004-06-10 (木) 21:32:17
  • C でも,BASIC でも,FORTRAN でも,AWK でも可能です。というか,たいていのプログラミング言語では可能でしょう。AWK は for (i in a) というのと for (i =1; i <=n; i++) というのと二種類の for 文を持っていますが,両方とも制御変数も,制御変数の変閾も変更できます。 -- 2004-06-10 (木) 21:50:14
  • 少し R をからかってみました。文句をいうが、へたれないところが偉い? -- 2004-06-10 (木) 21:48:36
    > rm(i); for (i in 1:3) {print(i); rm(i)}
    Warning message: )}remove: variable "i" was not found
    
    NULL
    [1] 1
    [1] 2
    [1] 3
  • in 以降の式を評価してスタックして、ループの間だ 指定した変数に評価後の値を付値していく訳ですから、添字と言う考え方ではないですね。それ以前にそういうプログラミングは他の言語でも如何な物でしょう。例えばperl(C?AN繋がり)なんかだと、以下のようになります。 -- なかま 2004-06-11 (金) 11:13:02
# 呪われた言語と言われるゆえん?
@ary = (1,2,3);
for $i ( (@ary,4) ){
  push @ary,5 if ( $i == 2 );
  print $i,"?n";
}
print join(",",@ary),"?n";

for $i ( "a","b","c" )
{
  $i="c";
  print $i,"?n";
}
1
2
3
4
1,2,3,5
Modification of a read-only value attempted at a.pl line 10.
  • 確かに以下のようなへんなことが出来る以上 「制御変数」という言葉自体がほとんど無意味なわけですね。-- 2004-06-11 (金) 16:58:44
> r <- list(1, "a", matrix(1:4,nc=2))
> for (i in r) print(i)
[1] 1
[1] "a"     
     [,1] [,2]
[1,]    1    3
[2,]    2    4 

CRAN更新パッケージ一覧の表示方法

岡田 (2004-06-04 (金) 17:37:34)

とりあえず、MenuBarの最新30件に混ざって出るようにしてみましたが、ページ更新だけを見たいというご意見もあるようです。しかしpackageの更新情報に興味をお持ちの方も多いかと思います。現状のままでよいか、パッケージの更新は全く別ページに置くべきか、それともMenuBarの最下端にパッケージ用の欄を用意するべきか、などのご意見をどうぞ。

  • 別ページ表示に一票 -- 2004-06-04 (金) 21:40:46

無相関は独立性を意味しない、例

(2004-06-01 (火) 22:58:00)

R とは直接関係ない話題で済みません。また学識深い R ユーザーは先刻御承知かも知れません。独立な確率変数 X,Y は無相関 Cov(X,Y)=0 だが、無相関は独立性を意味しないというのは統計学の教科書に必ずといっていいほど書いてあることですが、具体例は必ずしもあげてないことが多い(私の無知でしたらごめんなさい)?。さっきあるオンラインテキストを見ていたら、なるほどという例があげてありましたので、嬉しくなってご紹介します。X を標準正規分布に従う確率変数、Y=X^2 とします。当然独立になるはずがありません。ところが Cov(X,Y) = E{X^3} - E{X}E{X^2} = E{X^3} = 0 となり無相関になります(これは原点対称で三次モーメントが存在する密度(確率)関数を持つ分布ならいつでもいえることですね)。

  • 正規分布のような裾の広い分布で示すより,一様分布のような場合の方がいいのでしょうか。いや,単なる質問です。 -- 2004-06-04 (金) 23:23:20
  • 一様分布でも原点対称(例えば [-0.5, 0.5] 上の一様分布)にしておけば同じことですね。原点対称でないが、奇跡的に E{X^3}=E{X}=0 となる例があるとまた面白いのですが。私が過去にある文献で見た例は、たしか有限離散分布を使った汎用性のない例でした。 -- 2004-06-05 (土) 00:48:09

「R-Tips」のPDF版とその原稿 (04/06/07に修正版をup)

舟尾? (2004-02-03 (火) 22:00:00)

竹澤先生の御厚意により、竹澤さんのウェブスペースにR-TipsのPDFを置かせて頂きました。良かったら御覧下さい。このPDFの原稿(TeX+eps)もありますので、大学などの講義のレジュメなどを作る際に、必要なところだけ文章や画像(epsファイル)をダウンロードすることもできます。PDFと原稿がRのユーザーさんのお役に立てば幸いです。

  • 素晴らしい。280ページの力作!もともとこんなに量がありましたっけ。ありがとうございます。現在校正段階のテキスト「データサイエンス入門 -- フリーな統計環境 R を用いたデータ解析」(3月25日刊行予定)でも紹介させて頂きます(ついでにプレスリリース)。 -- 間瀬茂 2004-02-04 (水) 08:16:32
  • 竹澤(中央農業総合研究センター・農業情報研究部)です。 船尾さんが作製されたR-Tipsが入っているサーバーはcseサーバです。これは、独立行政法人 農業・生物系特定産業技術研究機構における研究情報の公開のためのものです。このサーバがどのくらい利用されているかを、農業・生物系特定産業技術研究機構が世間様にどのくらいお役に立っているかを採点するための資料の一つにする可能性があるようです。従いまして、船尾さんが作製されたR-Tipsを、Rを有効に利用するためはもちろん、農業・生物系特定産業技術研究機構が潰れないようにするためにも、じゃんじゃん御参照・ダウンロードしていただきますようお願い致します。 -- 竹澤? 2004-02-04 (水) 13:56:03
  • 改めて全体を見ました。感想は「すごい」。内容の豊富さも素晴らしいですが、説明の仕方も(失礼ですが)修士の学生さんの作とは思えないツボを押えた見事なものです。皆さんにもお勧めします。他の人にも是非推薦して下さい。それと忘れずに Yahoo にホームページ引越しの件お知らせ下さい。 これだけで立派な修士論文になりませんか?-- 間瀬? 2004-02-04 (水) 17:54:06
  • 非常に恐縮であります…。「Introduction to R」の日本語訳版には物凄くお世話になりましたので、翻訳者である間瀬先生にそういって頂けると嬉しいです。このPDFは「Intro...」を始めとして、このRjpWikiを含めた様々な優良サイトで私がRを勉強した足跡みたいなものですので、著作権云々を主張する気は毛頭ありません(もとより主張出来ません…)。R本体や「Intro...」同様、ユーザーさんが自由に使えるPDFと考えて頂ければ幸いです。ちなみに修士論文よりもこのPDFの方が内容はしっかりしております^^。  このPDF(+html)をネットに上げるにあたって、管理等を全てお任せした竹澤先生に多大なるご迷惑をおかけしました…。内容等の不具合は全て私の責任ですので、苦情やスパムメールなどを送る際は、竹澤先生ではなく私宛てにお願いします。 -- 舟尾? 2004-02-04 (水) 19:19:19
  • リンク切れでしょうか?PDF を見ることができないのですが・・・. -- 2004-02-07 (土) 17:57:40
  • 復帰したようですね。 -- 2004-02-08 (日) 20:57:41
  • ですね。リンクの張り間違いではなかったようです。 -- 2004-02-08 (日) 21:39:49
  • ありがとうございます。これはものすごいPDFが出ましたね。 -- 2004-02-08 (日) 22:29:38
  • 2/6 に竹澤先生にお願いして up させてもらった PDF は,煩雑さと間違いの嵐でしたので,再度修正を致しました.やはり 282 頁は多すぎるというご指摘を多数頂きましたので,今回は 209 頁まで減らしました(でもまだ多いですね…).今回も印刷しなくても使えるように PDF にしおりを付けております.あと,原稿をダウンロードするのが非常に面倒だということで,節ごとに .zip ファイルで固めて配布するように致しました.間違い・アドバイス・苦情・要望などがありましたら(知識不足により質問はご勘弁…)こちらの掲示板までお願いします.以上,よろしくお願い致します. -- 舟尾 2004-05-27 (木) 00:55:55
  • 内容についてではなく、つまらないことで恐縮です。印刷しているのですが、「12頁」だけ何故か印刷できません。もし、理由におこころあたりがあれば教えてください。 -- 2004-05-28 (金) 13:22:23
  • こちらのレーザープリンタ・インクジェットプリンタでは印刷できましたので,何が不具合の原因なのかが分かりかねますが,ひょっとしたら12頁の画像ファイル(12頁では R-Project の画像を貼り付けて実行ファイルの場所を示しています)が重すぎたのかもしれません.12頁の画像が軽い版で試して頂けますでしょうか? -- 舟尾 2004-05-30 (日) 11:11:54
  • 私も12ページだけ印刷できませんでした。軽い版でも駄目です。不思議ですね。 -- 2004-06-07 (月) 01:18:19
  • ↑この書き込みの者です。原因は分かりませんでしたが,解決することができました。Acrobatで,「ツール」→「PDFコンサルタント」→「容量の最適化」という手順を踏みました。 -- 2004-06-07 (月) 01:24:00
  • 大変申し訳ありません.お手数をおかけしております….上の方の改善案を見るにつけ,容量が重過ぎるのが問題だと思われますので,12頁の画像がより軽い版 を暫定的に置いてみました.再度試して頂けますでしょうか? -- 舟尾 2004-06-07 (日) 19:57:57
  • すみません。最初に12頁が印刷できないと書き込みした者です。おっしゃる頁で間違いございません。軽い版で試しても私の環境では「文書を印刷できません。」と出ます。しかしテキストで打ち出して印刷しましたので、この件はこれで対処済みということで私としては構いません。内容についての先生方のご意見が大事と思いますので。失礼しました。 -- 2004-06-10 (木) 10:16:27
  • お役に立てなくて申し訳ありませんでした….また原因が分かった時点で修正致します. -- 舟尾? 2004-06-10 (木) 21:04:28

統計グラフで特許出願!

間瀬茂 (2004-05-18 (火) 10:15:03)

r-help 記事によると、三次元棒グラフの代替グラフである diamond graph という
グラフが特許出願中だそうです。

実物はここを参照

  • 引用されたグラフ中の数字が読みとれないので,ネットサーフィンしてみました。http://maths.newcastle.edu.au/~rking/R/help/03b/3759.html が目にとまりました。diamond graph に批判的ですね。量を面積を持つ二次元図形の大きさで表すことの危うさに触れています。
    https://stat.ethz.ch/pipermail/r-help/2003-August/036697.html も面白かった。
    そのほか,http://maths.newcastle.edu.au/~rking/R/help/03b/2342.html とか -- 青木繁伸 2004-05-18 (火) 11:27:24
  • 統計グラフで特許申請というアイデアそのものは「目から鱗」でしたが、同時にいやな世の中になったものだなと感じました。統計手法も特許対象にそのうちなる(既になっているものがあっても驚きませんが)? -- 間瀬? 2004-05-18 (火) 12:16:52
  • ついでに。特許は有用性ではなく、新規性に対して与えられるのだそうですが、はたしてこのグラフが特許をとったとして、具体的にどうするつもりなのかはの多少興味がありますね。商用ソフトで使う際には、金をよこせぐらいでしょうか。 -- 間瀬? 2004-05-18 (火) 12:25:15
  • このグラフの特許問題に関する R-help 記事に Ross Ihaka が興味深いことを書いていましたので紹介します。-- 間瀬? 2004-05-30 (日) 12:42:06
    (R をオープンソースとする決定をしたこと)は私には考えていたよりもはるかに困難なことが
    わかりました。私の所属する機関は知的な財産、特にソフトウェア、について特に極悪非道 
    (diabolical ママ)な方針を持っています。我々がソフトを密かに公開し、後で「しまった!」と
    漏らした時、私は私の作品の自由な公開について承認を求めることにしました。これは数年を必
    要とし、辞職から給料のカットまでいくつもの脅しを受けました。...

Bioconductor 1.4 released

(2004-05-18 (火) 07:08:01)

r-help でBioconductor新バージョンの発表がありましたが、RdbiPgSQL はWin32 binaries がまだ用意されていませんね。
 Mingw でコンパイルできる PostgreSQL Native Win32 がかなりのところまで来ているので、そろそろ用意してもいいのではないでしょうか。

  • 自分ではちゃんと確認していないのですが、PostgreSQL7.5でWindowsバージョンがリリースだったと思います。 -- 樋口? 2004-06-30 (水) 08:28:52

Rのロゴ表示

谷村 (2004-05-14 (金) 22:29:19)

ロゴ表示コマンド(addlogo)の紹介がRjpWikiの中に見あたらなかったので、ここで紹介します。適当なppm形式の画像を用意すればロゴとしてグラフィックの中にはめ込めます。

> library(pixmap)
> x <- read.pnm(system.file("pictures/logo.ppm", package = "pixmap")[1])
> plot(runif(100),runif(100))
> addlogo(x,px=c(0.8,1),py=c(0,0.2))
addlogo.png

応用例

方位記号をロゴとして加える

nagasaki.png
  • 上の方位記号の画像はフリーのものでしょうか? -- 2004-05-14 (金) 23:55:39
  • ArcView?のものを参考に適当に作成したものです。 -- 谷村 2004-05-15 (土) 00:32:18

日本人の活躍

谷村 (2004-05-14 (金) 21:47:25)

汎用空間データ関数パッケージ(sp)のヘルプを何気なく見たら
holepolys Hisaji Ono's hole problem
を発見!尾野さん、素晴らしいです。RでGISも期待しています。


carのrecode(条件反射でコードを書くと)

なかま (2004-05-11 (火) 08:47:51)

ぼやーっと、

x <- 0:100
y <- recode ( x, '0:19 = "未成年" ; 20:59 = "成人" ; else = "老人"' )

のようにしたものの、18才未満の方がいいかなと、

recode ( x, 'x[ x < 18] = "未成年" ; x[ x < 60] = "成人" ; else = "老人" ')

とかしてしまい、

recode ( x, 'x[ x <= 12] = "小児" ; x[ x < 18] = "未成年" ; 
         x[ x < 60] = "成人" ; else = "老人" ')

とした時点でパーサーエラー。
'='でsplitしているのでエラーになったんですね。
で、条件式を書いてもOKとは書いてない事に最後に気づいてしまいました。(^-^;

# 良く読め<オレ
でもそれって、

x <- 0:10
recode ( x, '0:5 = ";" ; 6:8 = ":" ; else = "x"' )

もエラーになる訳で。。。

  • 地道にcutとlevelsでやれば,最後の例はエラーにはなりませんね。x<-0:10; z<-cut(x,c(-1,5,8,10)); levels(z)<-c(";",":","x") -- 中澤? 2004-05-11 (火) 11:43:56
  • ありがとうございます。地道に精進致します。 -- なかま 2004-05-11 (火) 14:24:23

dynamicGraphについて(Vineユーザのみなさま)

谷村 (2004-05-10 (月) 16:43:06)

dynamicGraphはtcltkに依存しています。Vineオリジナル版では、バージョンの問題によりtcltkを無効にしているため、dynamicGraphを使えません。ごめんなさい。

  • 仮に有効にしてもそのままではPostScript?に吐いてもWinでもLinuxでも表示出来ませんが。:-( -- なかま 2004-05-10 (月) 17:39:54
  • あっなかまさん。VinePlus?へR-1.9日本語版をputする件はいかがですか -- 谷村 2004-05-11 (火) 14:55:02
  • うぐっ、もう少し、心の準備が出来てから。。。(汗; -- なかま 2004-05-11 (火) 21:13:14

カンサス州知事は R ユーザー?

間瀬? (2004-04-29 (木) 14:41:20)

最近の r-help ML にカンサス州知事 Kathleen Sebelius からの投稿がありました。明らかに宛先間違いと思われる内容でしたが、なぜ州知事は間違った宛先 r-help を使うことになったのか?彼女(らしいですね)はひょっとして R ユーザー? 手のこんだ差出人詐称メイルかどうかはわかりません。=> (仮に詐称と仮定してですが)こうした有名人・公人を詐称する一見真面目内容のワームが蔓延すると、と考えると恐いですね。下手なワームよりも被害が甚大になる恐れがありそうです。先頃ありもしない宮家の結婚式の招待を真に受けていそいそと出席したタレントの例が思い浮かびます。


車輪を二度発明すること

(2004-04-23 (金) 18:00:47)

splancs に areapl というのがあってポリゴンの面積を計算できるというのを読んでも,人の作った関数はわかりにくかったりする(? splancs だけでは使えそうにない)。

ポリゴンの面積を計算するのは,R だとものすごく短く書ける。
頂点の座標を時計回りに順にn×2行列にして与える。

area <- function(xy)
{
	n <- length(x <- xy[,1])
	sum((c(x[-1], x[1])-c(x[n], x[-n]))*xy[,2])/2
}
# test run. answer=28.5
xy <- matrix(c(9,4,7,5,6,4,7,2,5,1,2,3,3,4,1,5,1,7,3,7,4,6,7,8), byrow=T, nc=2)

> area(xy)
[1] 28.5
  • areaplは、Fortranでコンパイルされた関数を呼んでいますが、実行速度の点から上記のRで書いたものとどちらが早いのでしょう。GISの世界では大量のポリゴン面積の計算が必要なときもあります。 -- 2004-04-23 (金) 22:23:32
  • 30時間かかる計算が1時間でできると,きっとうれしい。30秒かかる計算が1秒でできてもあんまりうれしくもない(一つの計算でなくても,ひとまとまりの計算と考えても良いが) -- 2004-04-23 (金) 23:38:54

全世界の R ユーザー数を推定する (r-help 記事より)

(2004-04-20 (火) 08:14:42)

I have been trying to determine the size of the R user base, and was asked to share my findings with this mailing list. Although I still don't have any definite estimate of this number, I do have some interesting and indicative information:

1. It appears that there are about 100,000 S-PLUS users.

Rationale: According to Insightful's 2002 Annual Report, over 100,000 people use Insightful software; since license revenues from S-PLUS and add-on modules accounted for nearly all of their license revenues in 2002, and their other products are much more costly than S-PLUS, it seems that the great majority of users of Insightful software are S-PLUS users.

Conclusion: S-PLUS costs $3500 (Windows) or $4500 (Linux/Unix) for an individual copy; R is free. This suggests that there may be more R users than S-PLUS users, which suggests > 100,000 R users.

Does anyone has any other information that would give some notion as to the RELATIVE numbers of R and S-PLUS users?

2. At least one R book has achieved sales of just over 5,000 copies. (I could not find sales figures for other R books, as it appears that publishers are closed-mouthed about such figures. And no, I can't reveal which particular book this was, so don't ask.)

Conclusion: Very few books sell to more than 12% of the population of potential buyers, and most books have a far lower penetration -- 1% or less is not uncommon. A 12% penetration for the book in question implies 42,000 R users; a more reasonable 5% penetration implies 100,000 users. A low 1% penetration implies 500,000 users.

3. There are a total of 3225 unique subscribers to the three R mailing lists. (こんな程度?)

  • r-help はこの件で盛り上がっています。やはり、皆気になっている話題らしいです。さて、日本ではどれくらい使っているのでしょう?少なくともこの二週間で最低十人ほど増えたことはわかっています(講義でRを紹介した結果)。 -- 2004-04-20 (火) 22:13:43

R 1.9.0 正式公開

[[間瀬 ]] (2004-04-12 (月) 22:20:15)

R 1.9.0 が正式に公開されました。各バイナリーの公開はすこし遅れると思います。想像以上の変更がされ、しばらく混乱しそうです。変更点のまとめの和訳 R1.9.0の新機能・変更 を計画しましたので、ご協力ください。しかし、R の活力が依然として盛んなことがうかがわれ、頼もしいです。gamma(n+1) を計算する(ためだけの)関数 factorial(n)、つまり階乗関数、が S-plus との互換性のために設けられたようです。これで、初心者や S からの転向者も悩まなくて済む?

  • lfactorial も同時に設けられたそうです。統計プログラムを書くときにうれしい(?)行列の周辺和を付けてくれるaddmarginsというのも便利そう(?) -- 2004-04-13 (火) 11:16:01

    > factorial(10)
    [1] 3628800
    > lfactorial(10)
    [1] 15.10441
    > x <-matrix(1:4, nc=2)
    > addmargins(x)
         [,1] [,2] [,3]
    [1,]    1    3    4
    [2,]    2    4    6
    [3,]    3    7   10
  • VineLinux用のrpmを本家にputしました。本家及びミラーに反映されるまでしばらくかかると思いますが、Vineユーザの方でオリジナルも使ってみたい方はどうぞ。tcltkはバージョンの関係で非サポートにしてあります。 -- 谷村 2004-04-15 (木) 17:53:14

emacs-21とessと日本語

なかま@金沢市民? (2004-04-11 (日) 18:09:50)

ヘルプで日本語が出ない。essでの日本語の扱いで旨く行かない話が過去に
ありましたが、解決出来ました。

(set-language-environment "Japanese")
(set-default-coding-systems 'euc-japan-unix)
(set-terminal-coding-system 'euc-japan-unix)
(set-keyboard-coding-system 'euc-japan-unix)
(set-buffer-file-coding-system 'euc-japan-unix)
(require 'ess-site)
(define-key ess-mode-map "?177"   'delete-char)
(setq ess-ask-for-ess-directory nil)
(setq ess-pre-run-hook
  '((lambda () (setq S-directory default-directory)
               (setq default-process-coding-system '(euc-japan-unix .   euc-japan-unix))
   )))
  • setq ess-pre-run-hook に (setq default-process-coding-system '(euc-japan-unix . euc-japan-unix)) があれば幸せになれます。(^^; -- 引続きなかま? 2004-04-11 (日) 18:11:33

The R Package for multivariate and spatial analysis

(2004-04-07 (水) 07:04:15)

r-help 記事によれば The R Package for multivariate and spatial analysis というフリーなソフトのプロジェクトがあるらしいです。Mac 用の多変量と空間統計用ソフトらしいです。玄関を見る限りそれなりにしっかりしたプロジェクトらしいですが、何故こんな紛らわしい名前をつけているのか、R と仕様上の何らかの関連があるのか不明です。過去には、R-project という名前のHPがある(それも日本に二つも)という投稿もありました。もちろん R とは何の関係もありません。

  • 個人的にはGoogleにかかりやすいようにRの名前の方を変えてほしいです。せめて3文字くらいで。 -- 2004-04-07 (水) 22:44:48
  • 私は「R 統計」と,"統計"をかませて検索します. -- 2004-05-30 (日) 11:43:03

円周率はなぜπか (オフトピック)

間瀬茂 (2004-04-06 (火) 06:40:47)

「工学のためのデータサイエンス入門」の23頁のコラム「円周率はなぜπか」中で、円周率を表す記号として π を使いだしたのはオイラー であると書きましたが、これは不正確でした。確かに π が円周率を表す記号として定着したのは、 オイラーの1748年出版の広く読まれた著書「無限小解析入門」で使われたのがきっかけだったらしいですが、 既に1647年に π を円周率を表す記号として使った例があるそうです。オイラーも当初は円周率を c とか p とか書いていたそうです。詳しくは「π - 魅力の数」、ジャン=ポール・ドゥラエ著、畑政義訳、朝倉書店(第二刷, 2003) を見てください。(若干一名から好評でしたのでずにのっておしゃべりを続けます。) なおこの本は円周率フリークが書いたこれまでにないハイレベルの本です。統計学を学んだ方なら、円周率の各桁がほとんど乱数にしか見えない事実はご存知かも知れません。かって学生にこの話しをしたら、ある学生がレポートにミニョットの評価(1973)

分母が1より大きいすべての有理数 p/q に対し次の不等式
|π-p/q| > 1/q^{20.6}

があるからπはランダムではない、と書いており、びっくりしたことがありましたが、どうやらこの本からの受け売りだったようです。実際この評価式を使うと、例えば小数点以下第10桁以降 0 が続けて210個以上は続けて出現できないことが示せるのだそうです。ただし、この式から導けるこの種の評価は、依然としてπの各桁が疑似乱数として使える可能性を否定する程の極端な偏りを示すものでは無いようです。この本には他にも、πと420億桁以上一致するという信じられない不思議な無限級数

( 10^{-5} ?sum_{n=-?infty}^{?infty} exp(-n^2/10^{10}) )^2

や、C言語でπを2400桁計算できる158語のプログラムなど、面白い話題満載で、講義のさいのコラム用話題のソースにお勧めです。πの乱数性についても特に一章を設けて紹介しています。

  • 考えてみたら上の無限級数は N(0, 10^{10}/2) の密度関数の √π 倍の全実軸上の積分の級数近似値だから、√π の近似値になることは容易に想像できますね。ただし420億桁一致とは依然として!!!ですが。 -- 間瀬茂 2004-04-06 (火) 10:55:31
  • 細かいことで申し訳ありませんが、書名、出版社名、発行年が少しずつ違っているように思われます。正しくはドゥラエ著、畑政義訳、(2001)、「π?魅惑の数 」、朝倉書店ではないでしょうか? -- 2004-04-07 (水) 08:36:08
  • 失礼、題名と出版社はおっしゃる通りです。2003年に第二刷がでています。 原文訂正しました。-- 2004-04-07 (水) 08:50:49

survey package

あいだま? (2004-04-03 (土) 16:08:23)

Survey Packageの翻訳が不適切です。↓
階層化、クラスター化、非一様標本調査に対する要約統計量、一般化線形モデル、そして一般化最尤推定。

Summary statistics, generalised linear models, and general maximum pseudolikelihood estimation for stratified, cluster-sampled, unequally weighted survey samples. Variances by Taylor series linearisation or replicate weights

層化抽出、集落抽出、等確率でない抽出の場合の標本のための
記述統計、一般化線形モデル、pseudolikelihood estimationの方法。
テイラー近似による分散の推定、replicate weights、

  • 自己レスで失礼しますが。replicate weightsの訳は当方知りません。これはBRRとjacknife法のことをさしているのですが。 -- あいだま? 2004-04-03 (土) 16:14:28
  • どこの訳を指していらっしゃるのでしょうか、情報不足です。パッケージ内容紹介に無い? また、 RjpWiki の精神は、勝手に投稿、勝手に修正ですのでよろしくお願いします。ちなみに pseudolikelihood estimation の訳は疑似尤度推定です。replicate weights は「標本抽出用の重み」とでも訳すのでしょうか? -- 2004-04-03 (土) 17:26:14
  • replicate weights はただの標本抽出用のウェイトではなくて、replication法による推定のためのウェイトです。今度、パッケージ内容紹介のところを勝手に(^_^)直しておきます。 -- あいだま? 2004-04-05 (月) 08:53:32

ご意見をお聞きします

間瀬茂 (2004-04-03 (土) 10:28:59)

間瀬です。私どもが企画した「工学のためのデータサイエンス入門 ー フリーな統計環境 R を用いたデータ解析」が出版されましたが、既にいくつかの要修正・訂正箇所を発見しております。また、何人の方からそうした箇所を指摘して頂き、感謝とともに、慌てております。改訂版が出るまで、こうした箇所の一覧を適当なHPに公開したいと考えておりますが、RjpWiki をそのためにお借りすることは適当でしょうか。正直にいいますと、HTML ファイルをこまめに編集するのは私のような年齢のものには疲れますし、特に RjpWiki のように手軽に編集・投稿できるソフトに慣れてしまった現在は特にそうです。また、RjpWiki に直接一覧を置く方がより人目につきやすいとも考えております。そうした私物化はケシカラン等のご意見(特に管理者の岡田さん)がありましたらお願いします。

  • 趣旨に合えば問題ないと思います。実際、個人Wikiサイトに別の個人が間借りしている例はよく見ます。ですが、最終的に判断されるのは設置者だと思います。 -- aki 2004-04-04 (日) 10:52:54
  • お騒がわせしましたが、結局複雑な数式を表現するには latex2html で latex ファイルから変更するのが一番良いという結論になりました。いずれ私のHPに掲載します。もしかして、購入を考えておられる方は、それをチェックしてから慎重にお考えください。 -- 間瀬茂 2004-04-05 (月) 21:02:21
  • 工学のためのデータサイエンス入門の正誤表。リンク集にも掲載。 -- 間瀬茂 2004-04-06 (火) 15:49:19

The R Reference Manual 出版!

間瀬茂 (2004-04-03 (土) 00:32:09)


R のベースパッケージ中のすべての関数の参照マニュアルを二冊の本にしたものが出版されたようです。全部で 1440 頁!詳しくはリンク集を見て下さい。


RのSVMで学習した結果を外部ファイルにエクスポート

高階知巳? (2004-03-28 (日) 11:11:54)

ウィーン工科大学の授業で使うために作られたというe1071パッケージに、svmの関数が含まれています。このsvmは、台湾大学で開発されたlibsvmを呼び出しているのですが、学習したモデルもlibsvmを使うアプリケーション間では互換性があります。e1071_1.3-16には私が書いてパッチでcontributeした、write.svmという学習モデルをエクスポートする関数が含まれています。しかし、この関数では、学習データのスケールパラメータが含まれていないません。そこで、新たに、スケールパラメータを別ファイルに書き込むように変更したパッチをe1071のメインテナには送ったのですが、もしも、それが公開される前に欲しい方がいらっしゃいましたら高階まで連絡を下さい。

  • e1071_1.4 が先日CRANでリリースされ、その中に、上述のパッチの内容が含まれています。 -- 高階? 2004-04-21 (水) 10:34:59

rimageのWindows版バイナリが公開されました

高階知巳? (2004-03-28 (日) 11:01:17)

RでJPEG画像ファイルの読み込みと基本的な画像処理機能を提供するrimage(拙作)の新版が、最近、CRANで公開されましたが、今回、このrimageのWindowsバイナリ版も公開されました。fftwとjpeglibを使っている関係で長らくソースパッケージでのみ公開していましたが、今回、苦労の末、Windowsでもコンパイルできるようにパッケージを修正しました。ちなみに、MacOS X版のバイナリパッケージは公開されていないですが、fftwとjpeglibがインストールされていれば、ソースパッケージからのインストールも簡単にできるはずです。

  • Windows ユーザーです.早速パッケージを頂きました.example を試したところ,見事に鮮明な猫の絵が出てきました!これはありがたいです!! -- 舟尾? 2004-03-28 (日) 21:04:23
  • Rでは画像の表示は遅いですが、特にWindowsでは遅い様です。描いている過程が見えますもんね。実は、Rの豊富なグラフィック機能の恩恵にはあやかれないのですが、Tcl/Tkで画像を表示するインタフェースも私の手元にはあります。線や点の重ね書きなどできませんが、こちらの方が抜群に速いです。ちなみに、その猫の絵は、容易に察しがつくと思いますが、うちの猫です。 -- 高階知巳? 2004-03-29 (月) 09:07:18
  • 高階さんが飼ってらっしゃる猫でしたか^ ^.すみません,猫に眉毛を描いたりして遊んでいました….CPU 1.1 GHz,メモリ 384 Mb で 15.5 Kb の画像表示に 3 秒程度かかりましたが,画像の質はほとんど全く落ちていませんね! -- 舟尾? 2004-03-30 (火) 00:56:53
  • 高階知巳さん、日本発 R アドオンパッケージ第一号(?)嬉しいですね。この分野でも日本が単なる ROM カントリーでなくなる日がくることを願っています。その意味でも、大変意義深いと喜んでいます。 -- 間瀬茂 2004-04-03 (土) 10:00:17
  • 間瀬先生、ありがとうございます。私もパッケージ作者が増えて欲しいと願って、出版予定の"The R Book"では「パッケージの作り方」という章を書かせてもらいました。Rのパッケージの作り方は実に簡単です。皆さんもトライしてみて下さい。さて、rimageは去年の今頃には公開していたのですが、秋頃、日本語に訳されたリファレンスがこのサイトに置かれているのを見つけて、びっくりしました (笑) -- 高階知巳? 2004-04-05 (月) 10:30:11

Nepia の対数 (オフトピック)

間瀬茂 (2004-03-27 (土) 09:41:08)

また年寄りの懐古趣味記事です。統計学でも必須の対数関数の歴史についてです。対数の発見者はスコットランドの貴族 Nepia (1614) だというのは広く知られた事実です。これが大航海時代を支える天体観測技術(航海者たちは天体観測器具と一緒に三角関数表、対数表を持参していたのです)の確立を目指した天文学者の膨大な手計算の手間を省く目的で開発された(掛け算、割算を足し算、引き算で実行する)という事実も私のように大部の対数表と呼ばれる本が身近にあった世代(さすがに私自身は使ったことがありませんが、幸せ!)には良く知られていることですが、ひょっとして若い世代には「嘘!」かも知れません。実際これが発表されるや否や、ヨーロッパの天文学者から「これで天文学者の寿命が伸びる」と称賛されたそうです。ネピアの対数について、数十年疑問に思っていたことが、先日やっと分かりました。昔ネピアの対数は自然対数で、常用対数の発見はその後だとある本で読み、びっくりしたことがあります。先日図書室でたまたま「数の大航海」志賀浩二著、日本評論社、という本を見つけ謎が解けました。この本はずばりネピアの対数発見だけを扱った本です。(志賀先生には昔多様体の講義を教わったことがあります。)結構錯綜した話をまとめるとネピアは

x = 10^7*(1-10^{-7})^y 

という関係にある数 x.y を数表化したのだそうです。比例定数 10^7 は x が小数になることを避け、整数だけ扱う工夫で、指数 7 は 7 桁の精度を保証するべく選ばれた様です。ご存知のように (1-10^{-7})^(10^7) はほぼ 1/e ですから、今の言葉でいえばネピアは自然対数の近似値を計算していたとも言えるわけです!ネピアはこのアイデアに基づく対数表を20年近い歳月をかけ完成(その計算法も上記本に詳しい)しましたが、そのせいか完成数年後死亡したそうです。天文学者の寿命を伸ばすために自分の寿命を短くしたわけです。ネピアの協力者によりまもなく常用対数が考案されたため、ネピアの対数自体は用済みになり、創始者としてだけ記憶されることになったようです。上記本にはまた一時期ヨーロッパで広く使われたと言う「ネピアの計算棒」という掛け算を簡易に実行するためのハードウェアも紹介されたいます。対数のアイデア自身は、実務家に広く使われたものの、当時の数学者にはむしろ敵視されたと言う面白い話も紹介されたいます(幾何学をはなれた純粋な実数概念の登場にはまだ長い時間が必要だったようです、パスカル・フェルマーも"応用数学"である対数には全く無関心だったそうです)。対数が数学者に受け入れられたのは、メルセンヌ素数に名前を残すメルセンヌが、対数は双曲線関数 y=1/x の面積を表しているという幾何学的解釈を与えた後だそうです。自然対数の底 e、そしてもちろん指数関数が発見されたのは微積分学が生まれた18世紀に入ってからですから、昔私が読んだネピアの対数は自然対数だったという話はもちろん誤解だったわけです。ネピアや多くの人物が人生を捧げた対数表を R で一瞬に計算できる幸せを噛みしめましょう(ここで何とか R にこじつけ)。一読を薦めます。講義でだらけた学生用の eye-opener に、ご著書のコラム用に役立つこと請け合いです。

  • 「大数の法則」のお話共々,興味深く読ませて頂いております.最後の「ネピアや多くの人物が人生を捧げた対数表を R で一瞬に計算できる幸せを噛みしめましょう」の件で思わず笑ってしまいました!図書館の書庫などで「推計学・数表…」てな本を見かけますが,R がある今は,統計学の数表の本や資料は歴史書的な位置付けになってしまいそうですね. -- 2004-03-30 (火) 01:05:29
  • おっしゃる通り、私供の本「工学のためのデータサイエンス入門 ーフリーな統計環境 R を用いたデータ解析ー」は入門的な統計学の本で巻末に統計数値表が一切無い数少ない本ではないかと思います。なお、志賀先生の本には、対数登場以前には天文学者たちは三角関数の積和公式と三角関数表を使って、乗除計算を加減計算で実行するという工夫をしていたことも書かれています。-- 間瀬茂 2004-04-04 (日) 11:52:41

Knoppix/Math/2004

間瀬茂 (2004-03-24 (水) 16:28:29)

R-jpに岡田さんが投稿されていますが、3月の筑波大学の数学会で Knoppix/Math/2004 のCDROMが配布されるそうです。これは数学関係のフリーソフトを充実させたスペシャル Knoppix-jp で、中間さんの日本語化 R が収録されているようです。CDROM イメージが Knoppix/Math/2004 ですでに公開されています。=> これに収録されている R が日本語化 R かどうか現時点で不明です。数学会で配布される Knoppix/Math/2004 のイメージはいずれ公開される予定だそうです。

  • Ring Server で公開をはじめました。収録しているRは日本語化されたものです。 -- hamada? 2004-03-27 (土) 21:19:09
  • Knoppix/Math/2004 ですね。 -- 2004-04-03 (土) 10:05:51

useR! 2004 プログラム公開

(2004-03-23 (火) 19:32:17)

日本人(?)による講演も三組。 プログラム。特に Insightful (S-plus 開発元)の CEO が R と S-plus を統合するビジネスモデルを提案(?)するらしいのが目につきました。たしかに open source の活力を無視・敵視するのは商用版 S としても賢明ではない。はたしてその内容は?


R 1.9.0 alpha

間瀬茂 (2004-03-21 (日) 07:02:30)

r-help 記事によると R 1.9.0 alpha を試した人から、MCMC 法の実行時間が R 1.8.1 より4倍(!?)近く早くなったとのコメント。にわかには信じがたいが、楽しみですね。使用環境は Win 2000 on a Pentium III 1.16 Mhs laptop だそうです。

  • 1.9.0ではアンダースコアを変数名に使えるようになるとか,標準ライブラリの構成が大きく変わるとか,かなりの変化があるようですね。ぼくも楽しみです。 -- 中澤? 2004-03-21 (日) 13:25:39

Mac OS X Panther と Raqua (r-help 記事より)

(2004-03-12 (金) 17:22:45)

ところで Raqua とは Mac OS X 用の R のことですよね(か?)

I've been nicely surprised, glancing through O'reilly's "Mac OS X Panther 
for Unix Geeks" (by Brian Jepson and Ernest E. Rothman), to discover that 
the sixth section of chapter seven is dedicated to Raqua. The authors give 
a few lines to describe R and Stefano's port to mac OS X, along with figures
(graphic windows and R console), and even a small applescript example to
interact with Raqua.~
BTW, the book is great.~
~
--Mathieu~
  • => 青木さんの頁で確認して安堵。ところで Raqua というネーミングは例によって何か駄洒落かなんかですか。 -- 2004-03-12 (金) 23:55:41
  • aquaはMac OS XのGUIで、これを使ってRが動くからだと思います -- 2004-03-13 (土) 11:19:39
  • 老婆心ながら、1.9 以後から単にRと呼ばれるようになりました。Binaries of base distribution of R for Mac OS X (from version 1.9.0 is no longer called "RAqua", just "R"). -- 樋口? 2004-06-30 (水) 09:10:21

R マニュアル翻訳チーム結成の呼びかけ(ただしフランスの話し)

(2004-03-12 (金) 07:15:42)

r-help にフランス人から投稿があり、前から自分が進めている R 公式マニュアルのフランス語訳について問い合わせがあるが、学位論文準備中等の事情もあり、あと3年(!) はかかりそうと、報告。関連してフランス語版翻訳ボランティアチーム結成の呼びかけ。フランスでもやはり自国語でマニュアルを読みたいという希望が多いらしい。



大数の法則 (オフトピック)

間瀬茂 (2004-03-11 (木) 17:09:54)

確率・統計の本の最初には必ずでてくる「大数の法則」ですが、正規分布・中心極限定理と異なり意外とその起源は知られていない?今日たまたま書店で「偶然を飼いならす - 統計学と第二次科学革命 -」イアン・ハッキング著、木鐸社、という本を見つけ、読んでいたら次のようなことが書いてありました。それによると大数の法則という言葉を作ったのはポアソン分布で有名なポアソンだそうです。今日重要なアイデアの起源が極めて特殊な問題から発生しているということは、科学史では良く見られることです。例えば、確率論の起源がギャンブル好きの貴族が友人のパスカルにあるサイコロ賭博のオッズについて質問したことに由来するというのは良く知られた話しですし、モンテカルロ法がアメリカの原爆開発計画であるマンハッタン計画に絡む数値解析的問題を解決するために、フォン・ノイマン、ウラムにより提案され(ちなみにモンテカルロ法という言葉そのものはメトロポリスによる)ということは一部には有名です。大数の法則の起源に関する意外性は、これが誤審の確率を見積もるためにポアソンが精力的に行なった研究の副産物だった(上記本によれば)ということです。ポアソンは陪審員の判断の信頼性が個人的に異なるという事実と確率計算を折衷させるために、こうした仮定(経験的にはすでに多くの人が指摘、数学的証明はチェビシェフによる)を必要としたようで、彼以降「大数の法則」という言葉自身が錨の役割を果たし、世間に流布したようです。陪審員による裁判で、誤審の確率を低くするためには多数決を何人対何人とすべきかという問題は、フランス革命当時から重要な話題だったらしく、断頭台に消えた数学者・政治家であったコンドルセ以来、ラプラス、フーリエ等の数学者には重要な研究テーマだったそうです。ちなみにラプラスが関連して展開した議論がベイズ法のもっとも初期の応用にもなっているのだそうです。若いころは歴史にはあまり関心がありませんでしたが、こんなことが気になってきたのは老化現象?もう少し早く知っていたら「データサイエンス入門」にも紹介できたのですが、残念。


eps ファイルの編集方法

舟尾? (2004-03-07 (日) 18:53:38)

本筋から離れるかもしれませんが,皆さんは R で出力した eps ファイルをどのような方法で編集されているでしょうか?私は Windows ユーザーなので,eps ファイルを編集するのに一苦労しております.しかも私は学生なのでお金がなく,Ad*be の Illustrat*r を手に入れることが出来ません….最近になってこのような方法 を見つけたのですが,もっと手軽な方法はあるのでしょうか?あと,Unix / Linux ユーザーの方や Mac 使いの方はどのような方法で eps ファイルを編集されているのでしょうか?質問ではありませんので,いろいろお話を聞かせていただければ幸いです.

  • 恥ずかしながら、(e)ps ファイルを編集するなぞ考えもしませんでした。これは、(e)ps 画像を元に他のお絵書きソフトで修正するという意味でしょうか。変更した画像も (e)ps でセーブできるのでしょうか。 -- 2004-03-07 (日) 21:11:03
  • UNIX系のOS (と Mac OS X) には Tgif というドローソフトがデフォルトで入っていますが,上で紹介しているソフトはこの Tgif を用いて (e) ps ファイルを編集しようというものです.ただ,Tgif では eps ファイルをそのまま編集できない (?) ので,フリーの画像形式変換 ( ps,eps -> obj )ソフトを使っています.もちろん,変更した画像も (e)ps 形式で保存することが出来ます (容量は重くなりがちです…). -- 舟尾? 2004-03-07 (日) 22:05:11
  • 有料ですが、花子2004で読み書きできるようです。互換性の高さは分かりません。以前は読めなかったので、作り手のノウハウ蓄積は多くないと思われます。私は今はCanvasを使っています。高かった。でももう旧版になっていたりします。Canvasにした理由は「シーケンス」と「スクリプト」の2通りの自動化をサポートしていたからです。 -- aki 2004-03-07 (日) 23:54:32
  • 花子が eps 形式に対応したというのは初耳でした.Canvas での eps ファイル作成は,dvipdfm を使う際の注意をしっかりすれば問題ないでしょうね.ちなみに Visio は 2003 から eps がサポートされなくなった?-- 2004-03-08 (月) 00:16:45
  • 凄い技ですね。ぼくは手作業編集したいときはwin.metafile()を使ってemf形式で出力し,OpenOffice?.orgのdrawに読み込んで,「切り離す」で切り離してから編集し,ページサイズや余白を変えてからeps形式でexportしていますこの文書の下の方のDrawについてのTipsを参照ください。わりと使いやすいです。 -- 中澤? 2004-03-08 (月) 12:05:10
  • 花子2004 は eps ファイルの編集が出来るんですか!かなり興味があります.あと,私が Openoffice.org 1.1 を使った時は, eps ファイルをそのまま編集しようとしたので「 eps ファイルの読み書き両方は出来ない」と早合点してました….そうですか,emf 形式で書き出して編集すれば良かったんですね!早速中澤さんの Tip を見に行きます! -- 舟尾? 2004-03-08 (月) 15:54:06
  • あと,ここの掲示板 に「 Visio は 2003 から eps がサポートされなくなった」という情報がありますね.残念….舟尾? 2004-03-08 (月) 15:55:55
  • ついでですが、Knoppix-jp の Openoffice はこれまで何故かうまく動かなかったのですが、バージョン 3.3 より最初からほぼ問題無く動くようになったことをお知らせします。Openoffide の draw で eps ファイルが編集できることは初めて知りました。 -- 間瀬茂 2004-03-08 (月) 17:19:11
  • 既存の eps も,pstoedit というソフトを GSviewと同じところ (Windows の場合,標準では C:?Program Files?Ghostgum?pstoedit)にインストールしておけば,GSview のメニューから [Edit] -> [Convert to vector format...] で WMF や EMF に変換できます.あとはこれを OpenOffice? の draw で読み込めば編集できますね! --舟尾? 2004-03-08 (月) 17:45:41
  • 度々、枠領域を明示・・・ではなくて、asp=??を指定できる関数で、これを指定すれば表示できるものもあります。例えば、plot(x,y,asp=1)とか -- koke? 2004-03-23 (火) 19:36:19

R on Zaurusにてグラフ出力時のエラー

aki (2004-03-07 (日) 06:19:07)

現在、Zaurus上のX/Qtで動作するRを用意しています。
コンパイルとipkの用意はできたのですが、いざ起動して

> x<-rnorm(50)
> y<-rnorm(50)
> plot(x,y)

とすると、

Warning messages:
1: Nonfinite axis limits [GScale(nan,nan,1, .); log=0]
2: relative range of values =hogehoge * EPS, is small (axis 1).
3: Nonfinite axis limits [GScale(-inf,inf,2, .); log=0]
4: relative range of values =hogehoge * EPS, is small (axis 2).

というメッセージと共にへんてこりんなグラフが表示されてしまいます。
検索すると、
http://lists.debian.org/debian-arm/2003/debian-arm-200311/msg00004.html
http://maths.newcastle.edu.au/~rking/R/devel/03b/1083.html
が見つかりましたが、結局のところ解決法が分かりません。
http://sgp.zaurii.net/binaries/index.html#R
のRは使えるような話がLinuxザウルスSL-C700でRには載っていますが、こちらのRではどこをどう変更したのか分かりません。
どなたか解決法が分かる方はいらっしゃいませんか?

  • ATLAS http://math-atlas.sourceforge.net/ が必要?かもしれないのでコンパイル中。 -- aki 2004-03-07 (日) 09:21:35
  • 以前、X外した171postscriptバージョンを作成した時も同様の現象が出ました。枠領域を明示すると、表示できたような記憶があります。 -- koke? 2004-03-23 (火) 14:58:39
  • 度々、枠領域を明示・・・ではなくて、asp=??を指定できる関数で、これを指定すれば表示できるものもあります。例えば、plot(x,y,asp=1)とか -- koke? 2004-03-23 (火) 20:14:52
  • BLASとLAPACKを用意してみましたが症状変わらず。うーん、あのサイトの人はどうやってるんでしょうね。 -- ? 2004-04-02 (金) 20:55:09
  • FORTRANコンパイラをg77からf2cにしてみましたが今度はエラーでコンパイル通らず。 -- aki 2004-04-15 (木) 03:27:20
  • f2cでコンパイルしましたがエラー症状変わらず。というわけで打つ手無しなので一時断念。 -- aki 2004-04-18 (日) 00:46:51

高校生向け R

(2004-03-07 (日) 00:25:48)

なるほど、高校生に R を使わせるとは考えつきませんでした。確かにグラフ書きソフトとしては便利ですがね。=> リンク集参照

  • はじめまして。中学・高校現場にいる者です。実はRを利用して統計の基礎の授業をしているのですが、資料等公開いたしましょうか? -- tim? 2004-03-12 (金) 19:01:24
  • よろしくお願いします。 -- 2004-03-12 (金) 22:04:11
  • もしかすると、R は統計学以上に高校生用の情報教育のプラットフォームとして最適かも知れないと思い始めました。プログラミング、数値計算、統計処理、グラフィックスなんでもござれで、しかも無料ですから。 -- 間瀬茂 2004-03-26 (金) 06:20:12
  • 職場での公開について許諾が得られたので、PDF形式で公開いたします。http://web.sfc.keio.ac.jp/~imahashi/R/から取得してください。ご意見お聞かせいただければ幸いです。なお、かなり古いものですので現状にあっていないかもしれません。 -- tim? 2004-04-05 (月) 17:53:11
  • すごいですね。数学の確率・統計の一部として「R を使えばこんなに簡単」程度の話しかと思っていましたが、これは一体どういった趣旨の授業で使われたのでしょうか。生徒さんの関心の程も少し伺いたいところですね。 -- 2004-04-05 (月) 21:28:43
  • 「データを解析する経験をしてみよう。そのときのツールとしてSを使ってみよう」がはじめのコンセプトだったようです(そのときはまだ私はいませんでした)。たまたまSをよく知っている人が職場にいて、はじめたというのが実際のところだったようです。 -- 2004-04-05 (月) 22:29:23
  • だんだん形を整えていって、「記述統計学の基礎(平均・分散や相関・回帰の初歩)」「プログラミング言語の体験」を目標にして作成したのが4年前。週50分の授業で1年間の分量です。全員必修としていました。ちょっと量としては多目かもしれません。 -- 2004-04-05 (月) 22:33:38
  • 全員対象なので「賛否両論」というところだったでしょうか。まあそれなりに皆ついてきてはいたようです。2年前にSからRに変え、自宅学習も可能になったので、それはよかったようです。 -- 2004-04-05 (月) 22:36:18
  • ちなみに(内容をみてもわかると思うのですが)あらかじめこちらで実習用のデータセットを用意した状態で実習を始めるので、素のRでこのテキストと同じようなことを入力しても再現はできません。念のため。(自宅学習用のデータセットも用意はしてあります) -- tim? 2004-04-05 (月) 22:38:35

Statistiques avec R

間瀬茂 (2004-03-04 (木) 21:08:48)

フランス語ながら「Statistiques avec R」というマニュアルは素晴らしいですね。思いついて CRAN の検索機能を当たってみたら、該当記事は皆無で、全く知られていない可能性が高そうです。あんまりもったいないので r-help に紹介記事を書きました。ところで、最初にこのマニュアルのことを紹介してくださった匿名子さんはどこからみつけてきたのですか? 特別なソースでもお持ちでしょうか。作者の Zoonekynd さんという人も不思議な人で、 同じ HP に無数のソフトウェアのマニュアルを公開しています。どうも統計学者ではなさそうな。

  • リンク集にも書いてありますが,特に4章のグラフィックスに関するコンテンツが素晴らしいですね!3次元ヒストグラムpovray.histを初めて見たときは鳥肌が立つほど感動しました. -- 舟尾? 2004-03-04 (木) 21:41:51
  • 他の章も一読あれ。やはりグラフィックスがたくさんあります。 -- 2004-03-04 (木) 23:10:25
  • r-help でも好評のようです。一人が反応メイルで arigato gozaimasita と書いていたのでびっくり。RjpWiki でもうかつに外人さんの悪口は書けませんね。ずにのってついでに RjpWiki のグラフィックス参考実例集も紹介してしまいましたが、これはさすがに外国からは参照しにくいでしょうね。しかしこうしたグラフィックス実例アーカイブは R ユーザーの参考になるというのが私の信念です。今後も優れた参考文献・実例があれば紹介よろしくお願いします。 -- 間瀬? 2004-03-05 (金) 08:01:26
  • r-help ではまさにニュースになったようです。これの英語訳を作るべきだという話が出ており、実際著者に計画の問い合わせをした人がいるようです。著者の返事ではこのマニュアルはまだ未完成であり、完成時には翻訳を考えると返事があったそうです。ヨーロッパの情報を日本経由で知らせられたというのも面白かったですね。改めて情報を下さった方に感謝します。 -- 間瀬? 2004-03-06 (土) 07:08:17
  • 著者の Zoonekynd さんはどうやら計算機オタクの数学者らしいです。現在は情報、バイオインフォーマティックスの研究をしているらしいです。テフのメタフォントによる図式の膨大なサンプルも公開されているようで、この手のソフトの扱いはプロらしいです。納得。 -- 2004-03-06 (土) 07:16:07
  • Zoonekynd という人物に興味を持ち少しグーグルしてみました。実に多彩な人らしく、Tex 関係でも有名人物のようです。もともと代数幾何学で学位を取ったせい(?)か図形に関心が深いらしく、メタフォントによる各種図形、Gimp のマニュアル(これもすごい)、更には漢字まで好奇心の的(彼の幾何学精神をかきたてる?)らしいです。暇な人向けにいくつかリンクを紹介。この他にも驚くべきマニュアルがまだありそうです。Tex への日本語フォントのインストール法まで解説しているところを見るとひょっとして日本語も分かるかも知れません。-- 間瀬? 2004-03-06 (土) 21:11:41
  • Zoonekynd さんはやはり日本語を理解するようです。中級程度と自己紹介してありました。これは、やはり英語訳が登場した暁にはマニュアルを日本語訳すべきですね。 -- 間瀬? 2004-03-07 (日) 09:16:35

「データサイエンス入門」出版案内

間瀬茂 (2004-03-03 (水) 00:15:21)

既に少しお知らせしましたが、第二の R 本が三月末に刊行予定です。私の関係する本の宣伝ということで、気が引けますが、もともと R の普及という目標で計画しましたのでお許しください。RjpWiki の常連のかたは、もしこの本を読まれると同じような内容が幾つもあることに気づかれるかも知れませんが、これは無断引用では決してなく、実はこの本のために用意した内容の一部を私が RjpWiki に投稿した結果です。とはいうものの、RjpWiki の皆さんの記事から得た知識に意識的・無意識のうちに影響を受けている部分もありますので、一々引用をあげていないケースもあるかと思いますが、まとめてお詫びと感謝を申し上げておきます。頁数の制限と理工系基礎科目用テキストという当初のコンセプトから、ノンパラ、時系列等の話題には一切触れておりません。また、講義での R の使用を前提にしないという少し苦しい前提から、実際は R コードだらけなのに、R のインストール・使いかたの基礎等は一切触れておりません。特色としては、回帰分析等の R 関数の出力の意味がわかるように工夫しました。出版社は「数理工学社」、発売元は「サイエンス社」、価格は2,300円、刊行期日は一応3月20日ですが、書店に並ぶのは4月になってからでしょうか。書名は「工学のためのデータサイエンス入門 ー フリーな統計環境 R を用いたデータ解析」(264頁)です。「工学のための」と前置きがついているのは数理工学社(サイエンス社の教科書用の子会社)の「工学のための数学シリーズ」の一つとして出版されるからです。もともと私の大学の工学部の統計学の講義を担当されている先生がたと計画しましたので、著者は「間瀬、神保、鎌倉、金藤」の四人です。内容の基礎になっているのは、私がながらく担当していた広島大学の一般教育の統計学の講義用に集めた資料です。もし、書店で見かけられましたら、立ち読みしてみてください。R のインストールや使用法については RjpWiki や岡田さんの計画されている本を見よと片付けてありますので、早めにお願いします :-) (なお慶応大学のある先生のHPに、やはり R を使った本を5月に刊行予定と書いてありましたことをお知らせしておきます。) PS. 原稿を読まれた数理工学社の担当の方が「R ってすごいソフトですね」と驚いておられたことを付け加えておきます。

  • 楽しみにしています。目次がわかるwebサイトはまだないのですか? -- 中澤? 2004-03-03 (水) 00:29:43
  • 最寄の本屋の在庫が切れないか…,今から心配しております. -- 舟尾? 2004-03-03 (水) 03:20:28
  • 追加コメント。原稿作成中、ますます R の魅力にはまりました。たしかに使いこなすにはそれなりの努力がいりますが、これほどまでに気がきいているとは、私自身改めて感心しました。簡単な紹介がサイエンス社にあります。予価が2000円になっておりますが、あれこれ書き加えた結果2300円に値上がりしてしまいました、すみません。 -- 間瀬茂 2004-03-03 (水) 09:22:18
  • 「慶応大学のある先生」とはどなたでしょうか?少し興味があります。差し支えなければ教えていただければ幸いです。 -- Yano? 2004-03-07 (日) 14:46:35
  • 慶応大学のある先生 を見てください。ちなみに「データサイエンス入門」の出版予定が3月29日に変更になっていました。 -- 間瀬茂 2004-03-08 (月) 18:34:04
  • ありがとうございました -- Yano? 2004-03-10 (水) 07:28:23

表計算ソフトの統計機能

(2004-02-28 (土) 19:20:21)

Excel の統計機能の問題については青木先生のホーム頁に詳しく、知っている人は先刻承知(もっとも知らない人が圧倒的多数?)ですが、r-help の2月26日の記事で、Marc Schwartz 氏が幾つかのサーベイ文献を紹介しています。同時に、フリーの表計算ソフトである Gnumeric の統計機能に付いても触れています。むしろ OpenOffice? の表計算機能が気になりますが、それには触れていないようです。

  • OpenOffice?.orgのcalcも,相関係数のエラー(青木先生のページの7番)はExcelと同じようにでましたので,やっぱり表計算ソフトはサイズの小さなデータの入力用と割り切った方がいいと思います。 -- 中澤? 2004-03-03 (水) 12:31:07
  • やはり駄目ですか。悪いところも含めて Excel にできるだけ似せようという戦略かな。 -- 2004-03-03 (水) 20:17:31
  • 例の Excel をこきおろすページ(^_^;)というのは,無理矢理難癖をつけた部分もありますので,通常の使用法(どこまでが通常かは突き詰めないことにして)ではほとんど問題はないことを付け加えておきます。 -- 青木繁伸 2004-03-03 (水) 22:32:33

Vine Linux 版の R のインストール法の記事?

(2004-02-25 (水) 17:36:10)

Vine Linux 版の R のインストール法の記事がいつのまにか消滅しているようですが、どうしたのでしょう?

  • 私が書いたネットワークインストールの記事でしょうか。aptリポジトリの提供をやめたので、削除しました。本家またはなかまさんのところからダウンロードして、適宜インストールしてください。インストール方法は下記の通りです。 -- 谷村 2004-02-26 (木) 14:49:31
# rpm -ivh R-1.8.1-4vl1.i386.rpm

S/R で商売

間瀬茂 (2004-02-25 (水) 17:11:06)

r-help に流れた広告。既に日本にも例があるようですが、R のコアメンバーが講師陣にいるような書き方が注目されます。R を商売にする例(付加価値を付けた商用 R パッケージやチュートリアル、R を使った統計解析システム)が今後(日本でも)でてきてもおかしくはない?

  XSolutions Corp ([1]www.xlsolutions-corp.com) is proud to announce
  a 2-day "Advanced R/Splus programming" taught by R Development
  Core Team Guru.

  *********San Francisco ----- March 22-23
  *********Washington DC ----  March 22-23
  *********Chicago -----------  March 25-26
  *********New York ---------  March 22-23
  *********Atlanta -----------  March 25-26
  *********Boston ------------  TBD

  If your location of choice isn't listed, please let us know!
  Reserve your seat Now  at earlybird rates (payment due AFTER the
  class)
  Registration:
  Email Sue Turner: [2]sue@xlsolutions-corp.com
  Phone: 206-686-1578
  Visit us: [3]www.xlsolutions-corp.com/training.htm
  Course outline:
  - Overview of R/S fundamentals: Syntax and Semantics
  - Class and Inheritance in R/S-Plus
  - Concepts, Construction and good use of language objects
  - Coercion and efficiency
  - Object-oriented programming in R and S-Plus
  - Advanced manipulation tools: Parse, Deparse, Substitute, etc.
  - How to fully take advantage of Vectorization
  - Generic and Method Functions; S4 (S-Plus 6)
  - Search path, databases and frames Visibility
  - Working with large objects
  - Handling Properly Recursion and iterative calculations
  - Managing loops; For (S-Plus) and for() loops
  - Consequences of Lazy Evaluation
  - Efficient Code practices for large computations
  - Memory management and Resource monitoring
  - Writing R/S-Plus functions to call compiled code
  - Writing and debugging compiled code for R/S-Plus system
  - Connecting R/S-Plus to External Data Sources
  - Understanding the structure of model fitting functions in R/S-Plus
  - Designing and Packaging efficiently
   Early-bird group research fee: $995!
  This course will also deal with lots of S-Plus efficiency issues and
  any special topics from participants is welcome.
  Please let us know if you and your colleagues are interested in this
  class to take advantage of group discount. Register now to secure
  your seat!
  Cheers,
  Elvis Miller, PhD
  Manager Training.
  XLSolutions Corporation
  206 686 1578
  [4]www.xlsolutions-corp.com

References

  1. http://www.xlsolutions-corp.com/
  2. mailto:sue@xlsolutions-corp.com
  3. http://www.xlsolutions-corp.com/training.htm
  4. http://www.xlsolutions-corp.com/

Windowsでパッケージを自作

かくれR狂? (2004-02-25 (水) 04:21:27)

Windowsでパッケージ自作に挑戦していました。
山口県立大の中澤先生の統計処理ソフトウェアRについてのTipsを参考にさせていただきました。
必要なソフト探しからだったので結構大変でした。
Tipsに紹介しようかと考えていますが、
もうすでにどこかで紹介されているのでしょうか?

  • 日本語での解説は基本マニュアルにかかれている以外は知りません。そもそも日本人によるパッケージ(いわゆるアドオンパッケージのことですよね)の作成の噂もきいたことがありません。画期的な第一号になるのでは。ぜひ CRAN への投稿もご検討下さい。 -- 間瀬茂 2004-02-25 (水) 08:18:08
  • Tipsに載せてみました。どなたか挑戦してみてください。 -- かくれR狂? 2004-02-26 (木) 14:44:41
  • 高階さんのrimageがあるので,第二号ですね。ぼくがMsysと角藤版pLaTeXで試していた限りでは,どうしても最後のExample作成のところで引っかかってしまい,最後は手作業でzipを作っていたのですが(pyramidをCRANに投稿していないのはそれも理由です……まあ,投稿しても没になるかもしれませんが),成功したのはすばらしいですね。 -- 中澤? 2004-02-27 (金) 10:32:37

新パッケージ mvpart (rpart の多変量データ版) 2004.2.22 r-help 記事引用

(2004-02-23 (月) 07:15:05)

The package mvpart is now available.
mvpart includes partitioning based on (1) multivariate numeric responses and
(2) dissimilarity matrices.

The package mvpart is a modification of rpart --



「Rを味見してみる」

舟尾? (2004-02-21 (土) 15:02:56)

R界で(も)お馴染みの青木先生が,またもや凄まじいコンテンツを立ち上げられました.
R を味見してみる : インターネットで R !!!
これで「Rというソフトがあるらしいがインストールするのは…」という方に試して頂けるようになりました!そしてRの敷居がまたまた低くなりました!

  • すみませんでした。諸般の事由で,中止致します。おさわがせしました。 -- 青木繁伸 2004-02-25 (水) 16:45:43
  • 最近気づきましたが中間さんちに Rweb という同様なものが公開されていますね。もちろん日本語化されています。ついでに「RjpWikiの輪」という気になるボタンがありますが、押してみても新規空ブラウザーが開くだけ。何か新企画の計画があるのでしょうか。 -- 2004-02-25 (水) 17:23:00
  • 青木先生のコンテンツが無くなってしまってげんなりしていたところでしたが,これは凄い….気のせいかもしれませんが,本家のものよりも処理速度が速いですねぇ.是非活用・宣伝致します! -- 舟尾? 2004-02-26 (木) 23:45:49
  • Javaアプレットが見れる状態にして、しばらく待つと見ることができます。Macでは日本語が化けてしまいましたが、面白いですよ>RjpWikiの輪 -- 2004-02-27 (金) 17:24:11
  • Rweb の html 15行目にエラーがありませんか? -- 2004-02-28 (土) 16:55:21
  • 15行目直しました。「R を味見してみる」で覗いてたのは私です。すみません。m(_|_)m 単純に何か対策されてるのか興味があったんで。私の所のは自分なりに色々対策してみてはありますが、多分穴だらけの可能性があります。まあ、人柱の精神で公開してますので御容赦の程。いずれ色々対策してみて問題が無いようになればTipsとして公開したいと思います。 -- なかま@金沢市民? 2004-02-28 (土) 17:43:37
  • 周りの人に紹介しています.なかなか好評でありまして,R を使ったことがない人や S-Plus 派の人からも賞賛の声が上がっております^^.R の宣伝でこれ以上のものはないでしょう! -- 舟尾? 2004-02-28 (土) 22:47:23

ブッシュ大統領曰く、私は統計学者でも預言者でもない。

間瀬? (2004-02-19 (木) 18:44:42)

r-help 記事によれば、ブッシュ大統領のスタッフが、今年末までにアメリカの雇用数は260万人分増えるであろうという政府発表を、批判を受けて訂正したそうです。ちなみに彼が大統領に就任以来アメリカの雇用者数は220万人分減少しているのだそうです。大統領スタッフは「これは number-cruncher (計算機の意味だそうです)の予測である」と言い訳、ついでに大統領のコメントとして「私は統計学者ではない、預言者でもない」を紹介したそうです。当然大統領は R のユーザーでもないのでしょうが。


舟尾チップス集

間瀬? (2004-02-13 (金) 22:06:29)

舟尾チップス集にはまだ私も知らない話題がたくさんありますね。例えばデータフレームの summary メソッドは「へー」でした。調査の上 RjpWiki に転載したいと思います。

  • 私は[ファイルへのデータ出力例]の節での,ファイル出力の際のwrite.table()とcbind()の合体技がためになりました(「回り道をした方法」と書いてありますが). -- 2004-02-14 (土) 20:47:11
  • お気づきの「へー」はどうぞ適当な箇所に追加お願いします。 -- 2004-02-14 (土) 21:13:41
  • ここに逐次書き込みをするのかと勘違いしました。お詫びすると共に、適当な箇所に追加したことを報告します。 -- 2004-02-16 (月) 21:26:49

useR! 2004 - The R User Conference

(2004-02-12 (木) 15:07:36)

2004年5月20日‐22にウィーンのTechnische大学でRユーザカンファレンス2004が
開催されます。演題締切は2月15日ですのでお早めに。
http://www.ci.tuwien.ac.at/Conferences/useR-2004/


投稿記事 どうむ について


> test(.Machine$double.eps)
TRUE
> test(.Machine$double.eps/2)
TRUE

となりました。 業務でRを使用しているのですが、if(Cond)のCondにそもそもこのような指定をすることがないので(というかすべきではない???)、あまり関係はないとも思ったのですが実行するとまた違った結果になって、驚きました。 とりあえずご報告まで。

  • こうした記事は独立して投稿すると、すぐ行方不明になりますのでご注意。かってに転記しました。ご記事の趣旨が今一つ不明ですが、おそらく .Machine$double.eps/2 は数値上実際は零になるはずだから if(.Machine$double.eps/2) は if(0) となるはずだが、そうはならないという趣旨でしょうか。もしそうだとすると、誤解があるような気がします。.Machine$double.eps は計算機で扱える最小の正実数ではありません。数値上 1+x > x となる最小の正実数です。従って例えば
    > .Machine$double.eps/1e10
    [1] 2.220446e-26
    と .Machine$double.eps 以下の正実数も立派に存在します。次の例が参考になるでしょうか。
> if(1+.Machine$double.eps==1) cat("TRUE?n") else cat("FALSE?n")
FALSE
> if(1+.Machine$double.eps/2==1) cat("TRUE?n") else cat("FALSE?n")
TRUE
  • 2004-02-02 (月) 17:19:39
  • 申し訳ございません -- どうむ 2004-02-02 (月) 17:39:31
  • 「if (x) の不審な(?)行動」に対するRESだったのですが当方の操作ミスが原因です。以後気をつけます。 -- どうむ 2004-02-02 (月) 17:41:59
  • 試してみたら.Machine$double.eps/1e308 が零になりました。-- 2004-02-02 (月) 17:48:55
    > if(.Machine$double.eps/1e307) cat("TRUE?n") else cat("FALSE?n")
    TRUE
    > if(.Machine$double.eps/1e308) cat("TRUE?n") else cat("FALSE?n")
    FALSE
  • どうむさんのご指摘のように「if (x) の不審な(?)行動」の記事の一部に間違いがありました。訂正してお詫びします(投稿者) -- 2004-02-02 (月) 18:22:32

文字列のオブジェクトへの変換方法 => 追加コメントは Q&A 参照

sakamoto? (2004-01-30 (金) 19:35:15)

まずは次のプログラムを見てください。
money<-1:10

a<-readline()
money

money[a>5]

[1]  1  2  3  4  5  6  7  8  9 10

a<-as.name(a)

a
money

money[a>5]

[1]  1  2  3  4  5  6  7  8  9 10


ここでしたい事は、以下の事である。

money[a>5]
[1] 6 7 8 9 10
つまり、文字列として取り込んだものをオブジェクトとして扱いたい。
いろいろ探してみたのですが、見つかりませんでした。
どなたか教えてもらえないでしょうか?

  • getを使うとオブジェクトの中身が取り出せる。 money[get(a)>5] -- 佐々木? 2004-02-25 (水) 16:47:56

too large data!

間瀬? (2004-01-29 (木) 17:36:59)

r-help 記事より。R でどれだけ大きなデータが処理できるかは興味のあるところですが、次のような記事がありました。S-plus では可能な解析であるとコメントしてあるところがきになりますね。やはり金を払うだけのことはある?要点を述べると

R-1.8.1, 
compiled as a 64bit application for a Solaris 5.8, 64 bit.  
8Gb of RAM を一人で使える
データは 2,000,000 行超で、多くは因子の60変数、一部は連続値
ファイルからの読み込みとセーブに5分以上、再読み込みに15分ほど必要
S-plus では可能だった解析を行なった
一回の反復で45分後に R はすべてのメモリを使い果たし、スワップを始め実質的に続行不可能になる
メモリ使用は最大を指定している(はず)
実際の解析コードは以下の通り

library(package = "statmod", pos = 2,
        lib.loc = "/home/jeg002/R-1.8.1/lib/R/R_LIBS")
qc.B3.tweedie <- glm(formula = pp20B3 ~ ageveh + anpol +
                    categveh + champion + cie + dossiera +
                    faq13c + faq5a + kmaff + kmprom + nbvt +
                    rabprof + sexeprin + newage,
                    family = tweedie(var.power = 1.577,
                      link.power = 0),
                    etastart = log(rep(mean(qc.b3.sans.occ[,
                       'pp20B3']), nrow(qc.b3.sans.occ))),
                    weights = unsb3t1,
                    trace = T,
                    data = qc.b3.sans.occ)

コアメンバーの Dalgaard から次のようなコメント

データはそれ自体で 0.5-1GB になるはず
60変数のうち実際使っているのは15変数だから、最初からそれだけに制限しておけば事情が変わるかも知れない
因子の水準が多過ぎる可能性?
とくに連続変数を因子に変換すれば違った結果が得られるかも知れない
  • 再び r-help 記事より。R の現在の基本ライブラリーは最大利用可能メモリー 2Gb の制限があるそうです。そして R はオブジェクトと中間結果等をすべてメモリー内で処理する(ディスクへのスワップを行なわない)仕様なので、少なくとも現在はこれが越えられない限界とのことです。 -- 2004-02-09 (月) 08:32:49
  • 上記記事に関連して。64ビットCPU の Linux 機では16GBメモリーをフルに使えているとのコメントあり。 (2004.2.21) -- 2004-02-21 (土) 17:51:03

不適当記事一件削除

Rnews 2003/3 公開

(2004-01-22 (木) 18:29:42)

We have published the 2003/3 issue of R News on

	http://cran.R-project.org/doc/Rnews

where you can download the newsletter as PDF or Postscript file. It
will propagate to the CRAN mirrors within a day or two.

Contents of this issue:

Dimensional Reduction for Data Mapping
R as a Simulation Platform in Ecological Modelling
Using R for Estimating Longitudinal Student Achievement Models
lmeSplines
Debugging Without (Too Many) Tears
Th R2HTML Package
R Help Desk: Package Management
Programmer's Niche: Regular Expressions
Recent Events
Upcoming Events
Changes in R 1.8.1
Changes on CRAN
R Foundation News

直線回帰の信頼区間

ぶんしょ? (2004-01-18 (日) 19:21:24)

回帰させた直線の95%信頼区間を知りたいのですが、どのようにすればいいですか? 困っているんで教えてください。 お願いします。

  • predict()関数を使うのが便利です。直線回帰でいいなら,example(predict.lm)とすると,使い方がわかると思います。 -- 中澤? 2004-01-18 (日) 23:45:15
  • ありがとうございます。さっそく試してみます。 -- ぶんしょ? 2004-01-19 (月) 12:58:34


[質問] lm() 関数の返り値のF統計量のp-value => 追加コメントは Q&A 参照

舟尾暢男? (2004-01-10 (土) 21:12:33)

lm()関数で重回帰分析を行った際,

result <- summary(lm(y~x))

として result[[k]] や result$names (k:整数,names:名前)
をすることで推定値やt値などが取り出せますが,F-statistics
のp-valueだけがどうやっても取り出せません.names()で調べても
F-statisticsのp-valueにあたるものが見当たらないのですが,
この件に関して情報をお持ちの方,レス頂ければ幸いです.

間瀬? 2004-01-10 (土) 22:52:45
たしかに summary.lm 関数は F 統計量の p 値自体は計算しないようですね。次のようにすれば計算可能ですが、summary.lm が表示する p 値はいつの時点で計算されるのか?

> x=1:10 
> y=c(rnorm(5),rnorm(5,mean=1)) 
> z=summary(lm(y~x)) 
> w=z$fstatistic 
> pf(w[1], w[2], w[3], lower.tail=FALSE)     
      value 
0.1643454
  • 丁寧な回答をありがとうございます。ただ、私の記事は質問コーナーに書き込むべき内容でした。申し訳ありません。 -- 舟尾? 2004-01-13 (火) 18:03:28
  • どういたしまして。依然としてなぜ lm オブジェクトを R プロンプトに単独で入力すると print.summary.lm が起動されるのか、その辺のメカニズムが理解できません。なにやら摩訶不思議な関数が背後にあるのでしょうか。ところで舟尾さん、立派なホームページ閉鎖されるそうで、残念です。今後は暇があれば(そして社会でも統計学に多少の縁があるようなら)、RjpWiki で活躍して下さい。 -- 間瀬? 2004-01-14 (水) 00:43:30
  • いえいえ、私のHPは間瀬さんが翻訳されたR入門や他の方々の頁などで勉強させて貰った足跡を残しただけの頁ですので、私自身は何もしてません…。HP閉鎖の件ですが、竹澤さんの頁にこのR-Tipsを移転させてもらえることになりました。この春から統計を使える職場で働くことになりましたので、これからも統計とRに関わっていけそうであります。今後、皆様のお役に立てるような書き込みが出来る様に、頻繁にRjpWikiをチェックさせて貰います。 -- 舟尾? 2004-01-15 (木) 13:31:10

ESRI shape ファイル

なかま@金沢市民? (2004-01-02 (金) 18:37:18)

あけまして、おめでとうございます。
http://www.diva-gis.org/data/DataServer.htm
に、色んな国のがありました。
日本のだと、都道府県レベルまででしたが、

plot(j[j$ADM2 == "Ishikawa"])

とか、最低限は出来そう。



添付ファイル: fileaddlogo.png 1999件 [詳細] filesin1.png 1005件 [詳細] filegraphs.jpeg 993件 [詳細] filesin.png 909件 [詳細] filenagasaki.png 1780件 [詳細] filedensity.gif 987件 [詳細] filetest.png 907件 [詳細] filegraphs.png 960件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (935d)