以下の内容はhttp://blog.livedoor.jp/splus_r/archives/2006-02.htmlより取得しました。


ベクトルってのは、みんなが高校生のときに習ったベクトルのことです。
ベクトルの計算がRS-Plusで簡単にできるというのは、もちろん、すばらしいのですが、RS-Plusではベクトルはさらに重要な意味を持っています。

C言語Javaでは、繰り返しなどの処理でforなどのループ構造を多用しますが、RS-PlusではVectorized calculationと言うのを多用します。
この辺は、後でゆっくり勉強しましょう。

今回は、簡単なベクトルの計算を理解しましょう。

> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
> 5:-3
[1] 5 4 3 2 1 0 -1 -2 -3
> seq(1,3,by=0.25)
[1] 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00
> rep("a",3)
[1] "a" "a" "a"

まずは、ベクトルを生成するための便利なコマンドを覚えると良いでしょう。
":"は刻み幅1で数列を作ります。
seq関数を使えば、刻み幅をby=xで指定できます。
rep(x,y)でxをy回繰り返すと言う意味です。

また、文字列は"string"と言うように"で括って表現します。

それでは、これらの数列の要素をひとつのベクトルにまとめましょう。

> a <- c(1:12)
> a
[1] 1 2 3 4 5 6 7 8 9 10 11 12

"c"はconcatenateと言う意味で、複数の要素を連結してひとつのベクトルを作ります。
今回は、a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) とベクトルが生成されました。

> b <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
> b
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"

文字列のベクトルを作ることもできます。
また、ベクトルの各要素に名前をつけることもできます。

> names(a)
NULL

今のところ、名前がないのでNULLが帰ってきました。

> names(a) <- b
> a
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 2 3 4 5 6 7 8 9 10 11 12

ベクトルaの各要素の名前をベクトルbにしました。

次はベクトルの各要素の呼び出し方を見てみましょう。

> a[2]
Feb
2
> a[5:9]
May Jun Jul Aug Sep
5 6 7 8 9
> a[-3]
Jan Feb Apr May Jun Jul Aug Sep Oct Nov Dec
1 2 4 5 6 7 8 9 10 11 12
> a[c("Sep", "Oct")]
Sep Oct
9 10

a[x]でベクトルaのx番目の要素を参照します。
また、xにベクトルを指定することもできます。
"-"をつけると「それ以外」と言う意味になります。
また、さきほどつけた要素の名前を直接指定してもかまいません。

代入と言う概念は、C言語とかJavaとかのプログラミング言語をかじったことがある人には、簡単でしょう。

> x <- 2
> x
[1] 2

これは、xと言う変数に2を代入すると言う意味。
"<-"というオペレーターを使います。
変数と言うよりは、値の「入れ物」と考えた方が分かりやすいでしょう。

> x <- 3
> x
[1] 3

xに新たに3を代入しました。
これで、前まで入っていた値は捨てられます。

また、break、else、for、function、if、in、next、repeat、return、while、TRUE、FALSEのように特別の意味がある予約語を変数として使うことはできません。
1Aみたいに数字から始まる文字列も使えません。

> x <- sqrt(2)
> x
[1] 1.414214
> x^2
[1] 2
>
> y <- sqrt(3)
> y
[1] 1.732051
> x*y
[1] 2.449490

もちろん、値を代入された変数どおしで様々な演算をすることができます。




とりあえず、お約束として、簡単な計算をして見ましょう。
R Consoleで1+1を計算します。

> 1+1
[1] 2

1+1って書いて、リターン・キーを押すだけ。
ちょっと複雑なやつ。

> (1+2+3)*4/5
[1] 4.8

できました。
次は、組み込み関数を使ってみましょう。

> sin(1)
[1] 0.841471
> sin(pi)
[1] 1.224606e-16
> pi
[1] 3.141593

sin(pi)ってやると、ちょっと誤差があるので、ぴったりゼロにはなりませんね。

> 2^10
[1] 1024
> 2^0.5
[1] 1.414214

累乗は^を使って表します。
エクセルと同じですね。

> sqrt(2)
[1] 1.414214

ルートはsqrtでも計算できます。

> sin(1); cos(1); tan(1); sinh(1); cosh(1); tanh(1)
[1] 0.841471
[1] 0.5403023
[1] 1.557408
[1] 1.175201
[1] 1.543081
[1] 0.7615942

三角関数はもちろん一通り揃ってます。
ちなみに、;を使えば複数の計算をいっぺんに実行できます。

> asin(1); acos(1); atan(1); asinh(1); acosh(1); atanh(1)
[1] 1.570796
[1] 0
[1] 0.7853982
[1] 0.8813736
[1] 0
[1] Inf

三角関数の逆関数も揃ってます。
asinってのはsin^-1って意味ね。

> log(1); log10(1); log2(1); exp(1)
[1] 0
[1] 0
[1] 0
[1] 2.718282

対数に関する関数です。
logの底はeでlog10の底は10でlog2の底が2ですよ。
exp(x)はeのx乗です。

> logb(2,1); logb(2,2); logb(2,4); logb(2,10);
[1] Inf
[1] 1
[1] 0.5
[1] 0.30103

logb(x,y)で底がyの対数を計算できます。

> round(pi); floor(pi); ceiling(pi); trunc(pi); sign(pi)
[1] 3
[1] 3
[1] 4
[1] 3
[1] 1

roundが小数以下を四捨五入、floorが小数を切捨、ceilingが切上、truncが整数部分、signが引数の符号です。

> signif(pi,3)
[1] 3.14

signif(x,y)でxを有効桁y桁で丸めます。

> 10 %/% 3
[1] 3
> 10 %% 3
[1] 1

%/%が整数商で、%%が余りを計算します。

> q()

q()で終了です。

以上で、簡単な計算の勉強が大体できましたね。


私は会社では豪華にS-Plusを使っていますが、家ではRを使うことにします。
なんせ、Rは無料のフリーウェア。
しかし、機能的にはS-Plusに見劣りしません。
GUIはやっぱり安っぽいけど、ふつう、男なら黙ってコマンド・ラインでしょう。

と言うわけで、今日、さっそくRの最新版を家のラップトップにインストールしました。
今のところ、最新版はVersion 2.2.1となっています。

http://r.nakama.ne.jp/R-2.2.1/binary/win32/においてある、R-2.2.1-win32.exeをダウンロードして、ダブルクリックしましょう。

インストール・ウィザードに従えば、簡単に日本語版Rがインストールできますが、一つだけ鬼門があります。


Version for East Asian Languagesを選択!


インストールコンポーネントの選択のところで、"Version for East Asian Languages"をチェックしてください。

ついでに、"PDF Reference Manual"もチェックしておくと良いでしょう。

このサイトに詳しくインストール方法が載ってますけど、基本的にはR-2.2.1-win32.exeを自分のPCにコピーしてきて、"Version for East Asian Languages"をチェックするのを忘れずに、ウィザードの指示に従うだけです。

ちなみに、私は英語版のまま使いたかったんですけど、Windowsの設定が日本語になっていると、勝手に日本語版になっちゃうようです。

誰か、Windowsを日本語環境のままで、Rを英語にする方法を知っていたら教えてください。
なんか、エラー・メッセージが日本語だと間抜けなんですよね。

とりあえず、Rのインストールは完了。


こんにちは。統計太郎です。

今までは、C++とかJavaとかのプログラム言語とエクセル+VBAで大体の処理をしていたのですが、同僚がみんなS-Plus使っているので、私も食わず嫌いはいけないと思い使い始めました。

そしたら、S-Plusってめちゃくちゃすげーじゃないですか。
Cで書いたら100行ぐらいかかる処理が数行で書けちゃったりするんです。

S-Plusに惚れました。。。

このブログは私がS-Plusを学ぶための備忘録にしようと思っています。


PS: ちなみにS-PlusRもベル研で開発された統計解析言語Sと言うのをもとに作られたソフトウェアなんだけど、S-PlusってのはGUIとかいろいろついている有料パッケージで、RってのがGUIとかはあんまり充実してないけどS-Plusとほとんど同じことができるフリーウェアのこと。





以上の内容はhttp://blog.livedoor.jp/splus_r/archives/2006-02.htmlより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14