R15

この間TVにHDDを付けたんだけど、USBケーブルからノイズを拾って誤動作してるっぽい症状が有った。 HDDも低価格競争で、安いケーブルになったからだろうか?

納戸を開いてみたら、スケルトンのUSBケーブルが出てきた。しっかり編み線でシールドしてあるのが 確認出来たので、交換してみた。このケーブル何に付属してたのかなあ。単独でケーブルを買った 記憶は無いのだけど。。。

ケーブル交換前は炬燵のSWのオンオフで必ず症状が出てたけど、交換したら発生頻度は、-15dB ぐらいになったよ。これで好しとするかな。そうそう、-15dBってのは、これぐらいね。

gosh> (/ (expt 10 1.5))
0.03162277660168379

女房のipad2買え買え攻撃を相変わらず受けている。買ってもいいけど、多分飽きて放り出すと 思うんだな。そうなると、おいらのおもちゃになる訳だけど、指でスリスリするだけじゃつまんない。

昔々、MAC/SEを買った時、最初に手に入れたアプリが、Turbo Pascalで、資料はInside MAC全巻 だった事を思い出した。そこで、ipad2でも開発となるのは必然。素直に母艦のMACも用意しろってんじゃ、 本末転倒な気がする。アプルの囲い込みには乗るまいぞ。

そんな訳なんで、世の中のアプル嫌いな人がどうしてるか、聞いてみる。 ipad 開発環境 windows ぐらいで検索してみたんだけど、どうも思わしくないな。

わずかに希望が持てそうなのは、 『VirutalBox』を使ってWindowsパソコンからMac OS Xを使う方法 ぐらい? これって昔流行した、Hackintosh。正規にOSの入ったDVDを買ったら幾らするんだろう? ipad2保有者は安く買えるとかしないかな?

本屋に行って、情報仕入れてくるか。

FreeBSDでもRcmdr

何かuix系でもGUIって要求があるようなので、古いNotePCに入ってるFreeBSD上のRでもRcmdrを 入れてみようと思った。なにせ、Tcl/Tkが入ってれば動くって振れ込みだから。

早速インストールコマンドを叩いてみたんだけど、あんたのR用Rcmdrは無いよだってさ。 Rcmdrを取り寄せて調べてみたら、R14以上が指定されてた。

[sakae@fb /usr/local/lib/R/library/Rcmdr]$ lv DESCRIPTION
  :
Depends: R (>= 2.14.0), tcltk, grDevices, utils, car (>= 2.0-0)
Suggests: abind, aplpack, colorspace, effects (>= 1.0-7), e1071,
        foreign, grid, Hmisc, lattice, leaps, lmtest, MASS, mgcv,
        multcomp (>= 0.991-2), nlme, nnet, relimp, rgl, RODBC, sem (>=
        2.1-1)
   :

今入ってるRは、2.8.1という 年代物だった。前にWindowsのRに入れた時は、R13だったけど、どうやってぬけがけしたんだろう? R14とかR18とか、成人映画みたいだな。

ああ、Windowsのそれは、バイナリーパッケージになってたんで、成人指定チェックは バイパスされちゃったんだな。納得。

で、FreeBSDのRであるが、しょうがないのRをアップデートした。そしたら、Rcmdrも動くように なったよ。でも、このR、爆弾かかえてるな。

[sakae@fb ~/MINE/lib/R/bin/exec]$ ldd ./R
./R:
        libRblas.so => not found (0x0)
        libg2c.so.2 => /usr/lib/libg2c.so.2 (0x33eb1000)
        libm.so.4 => /lib/libm.so.4 (0x33ecd000)
        libintl.so.8 => /usr/local/lib/libintl.so.8 (0x33ee3000)
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x33ef5000)
        libreadline.so.6 => /usr/local/lib/libreadline.so.6 (0x33fe9000)
        liblzma.so.5 => /usr/local/lib/liblzma.so.5 (0x3401d000)
        libc.so.6 => /lib/libc.so.6 (0x3403f000)
        libncurses.so.6 => /lib/libncurses.so.6 (0x34127000)

libRblas.soって時限爆弾、何時発動するんだろう? 今から楽しみ! (って、お前はマゾか)

R15

R15が出た。R13が一年前の事だから、大人用のR18が出るのは、来年の暮れぐらいになるかな。 R18の成人指定がかなったら、本格的に使う事にしよう。それまでは、お子様モードだな。 過激な事は出来ないとな。

ついでなので、Windows7に入ってるRを13から、R15にしといた。日本にミラーサーバーが3つも 立ってるって、ブームなんですかね。兵庫と筑波と東京があるんだけど、 東京から落としてきたよ。

RでFFT

統計ソフトRにFFTの機能が有るか、はなはだ自信が無いので探してみる。

> help.search("FFT")
Help files with alias or concept or title matching ‘FFT’ using
regular expression matching:

base::as.data.frame     Coerce to a Data Frame
base::.subset           Internal Functions in Package 'base'
base::difftime          Time Intervals
base::xtfrm             Auxiliary Function for Sorting and Ranking
stats::convolve         Convolution of Sequences via FFT
stats::fft              Fast Discrete Fourier Transform

Type '?PKG::FOO' to inspect entries 'PKG::FOO', or 'TYPE?PKG::FOO' for
entries like 'PKG::FOO-TYPE'.

fftって統計族にあるみたい。?fftすると

fft                   package:stats                    R Documentation

Fast Discrete Fourier Transform

Description:

     Performs the Fast Fourier Transform of an array.

Usage:

     fft(z, inverse = FALSE)
     mvfft(z, inverse = FALSE)

Arguments:

       z: a real or complex array containing the values to be
          transformed.

 inverse: if ‘TRUE’, the unnormalized inverse transform is computed
          (the inverse has a ‘+’ in the exponent of e, but here, we
          do _not_ divide by ‘1/length(x)’).

inverse=TRUEにすると逆FFTも出来るようになってるのね。つらつらと見てくと、Examplesなんてのも 出てる。これも簡単に試せる。

> example(fft)

fft> x <- 1:4

fft> fft(x)
[1] 10+0i -2+2i -2+0i -2-2i

fft> fft(fft(x), inverse = TRUE)/length(x)
[1] 1+0i 2+0i 3+0i 4+0i

Rの場合は例がテストケースにもなってるのね。これなかなかのアイデアだと思うよ。

image

FFTが利用出来るなら、以前にやった音のスペクトラム表示も出来そうだな。調べてみると、wav ファイルを扱えるsoundライブラリィーの有るようだ。そうなると、後は表示だな。 これは、基本機能になってた。

行列のデータを色で表示してくれるやつ。名前はimageって言うんだ。pngファイルでも読み込んで 表示するやつかと最初imageしてたんだけど、違ったね。例によって例を試すと、最初は幾何学模様が 出てきて、次にvolcanoとか言う火山の等高線マップが出てきた。こういう事が出来るなら、国土 地理院あたりから地図データを落としてきてマップしてみるのも面白いな。

     require(grDevices); require(graphics)
     filled.contour(volcano, color.palette = terrain.colors, asp = 1)
     title(main = "volcano data: filled contour map")

こうやると、色マップが付いて、soxのspectrogramっぽくなるよ。

Rには例がたくさん載ってて、統計の関数を試していくには好都合なんだけど、例で使われる 実データも大量に含まれている。実データだけを集めたライブラリィーまで用意されてて、R を起動すればすぐに使える。どんな実データが有るかと言うと

> library(help=datasets)
                 パッケージ '‘datasets’' の情報

 記述:

Package:       datasets
Version:       2.14.0
Priority:      base
Title:         The R Datasets Package
Author:        R Development Core Team and contributors worldwide
Maintainer:    R Core Team <R-core@r-project.org>
Description:   Base R datasets
License:       Part of R 2.14.0
Built:         R 2.14.0; ; 2011-12-12 13:57:03 UTC; unix

 索引:

AirPassengers           Monthly Airline Passenger Numbers 1949-1960
BJsales                 Sales Data with Leading Indicator
 :
sunspots                Monthly Sunspot Numbers, 1749-1983
 :
volcano                 Topographic Information on Auckland's Maunga
                        Whau Volcano
warpbreaks              The Number of Breaks in Yarn during Weaving
women                   Average Heights and Weights for American Women

sunspotsって太陽黒点の事でっしゃろか? ハムな人が気にする。そしてアメリカの女性の身長、 と体重だぁ。1975年、30歳台、部屋着と靴を履いた状態でのデータらしい。

> data(women)
> women
   height weight
1      58    115
2      59    117
3      60    120
4      61    123
5      62    126
6      63    129
7      64    132
8      65    135
9      66    139
10     67    142
11     68    146
12     69    150
13     70    154
14     71    159
15     72    164

グローバルスタンダードを錦の御旗にしてるくせに単位系は準拠してませんなあ。身長はインチで体重はポンドかな?

> women$height <- 2.54 * women$height
> women$weight <- 0.453 * women$weight
> hm <- women$height / 100
> women$bmi <- women$weight / hm / hm
> women
   height weight      bmi
1  147.32 52.095 24.00339
2  149.86 53.001 23.60003
3  152.40 54.360 23.40505
4  154.94 55.719 23.21006
5  157.48 57.078 23.01537
6  160.02 58.437 22.82125
7  162.56 59.796 22.62793
8  165.10 61.155 22.43561
9  167.64 62.967 22.40566
10 170.18 64.326 22.21107
11 172.72 66.138 22.17001
12 175.26 67.950 22.12197
13 177.80 69.762 22.06762
14 180.34 72.027 22.14681
15 182.88 74.292 22.21312

余計なお世話かも知れないけど、BMIを追加しといたよ。チビ(スマソ、差別用語でした)は、 いささかデブぎみだな。今のデータだと、炭酸飲料(コーラとか)やマクドの影響でデブ増殖中 だろうな。最近『食の終焉』なんて本を読んで食料分野について考える事多々ありましただ。

で、さすがに、肉食系女子ですなあ。次回はBWHもお願い。こういうデータはトリンプあたりが いっぱい持ってて、門外不出なんだろうな。って、スケベ親父だ事!

最後はハムらしく、太陽黒点に思いを馳せてみる。

     require(stats); require(graphics)
     ## Compare the monthly series
     plot (sunspot.month, main = "sunspot.month [stats]", col = 2)
     lines(sunspots) # "very barely" see something

     ## Now look at the difference :
     all(tsp(sunspots)     [c(1,3)] ==
         tsp(sunspot.month)[c(1,3)]) ## Start & Periodicity are the same
     n1 <- length(sunspots)
     table(eq <- sunspots == sunspot.month[1:n1]) #>  132  are different !
     i <- which(!eq)
     rug(time(eq)[i])
     s1 <- sunspots[i] ; s2 <- sunspot.month[i]
     cbind(i = i, sunspots = s1, ss.month = s2,
           perc.diff = round(100*2*abs(s1-s2)/(s1+s2), 1))

うーん、最近のデータは入ってないな。原さんに聞けってな。あの人、相談役にでもなったの かしらん?