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))
うーん、最近のデータは入ってないな。原さんに聞けってな。あの人、相談役にでもなったの かしらん?