今更ながらではあるけれども、R言語に着手を始めたので、記録を取っていこうと思う。新しく覚えていくのはちょいと苦痛ではあるものの、何かしら分析を行う上で非常に良いらしく、また数学は比較的得意なので、使ってみることにします。

R言語ってそもそも何なのか?

ぶっちゃけ、なんだっていいじゃんって思って始めるわけですけど、ひとまずR言語ってなんぞ?ってところを調べて見ました。

調べてみると、以下のような記載でした。

統計の機能が盛りだくさんのスクリプト言語です。
似ている言語は?と聞かれるとPythonと答えています。

[出典元]  プログラマーのためのR言語入門 - Qiita

ですって。ふーん。

つまり、統計関係の機能がいっぱいあるスクリプト言語なので、統計を行う時に便利なものですってことらしいです。了解。統計を使うことがそのうち増えそうなので、ひとまずチャレンジして見ます。

まずはR言語を実行するプログラムをインストールしてみる

R言語を実行するためのプログラムをインストールして見ます。これは非常に簡単ですぐに終わります。

https://cran.rstudio.com/ にプログラムが置いてあるので、各環境に合わせてダウンロードのあと、インストールを実行します。

私はmacなので、macでインストールしてみました。何か途中でインストールできないので、何でかな?と思ったらOSのバージョンのせいだったので、OSをアップデートしてからインストールしました。

インストールが終わったら起動します。

最後の行の>の部分にコマンドを入れて、色々動かすことができるようです。linuxのコマンドと同じで対話型なんですね。

ベクトルを作成してみる

ベクトルとか、また懐かしい単語が出てきました。学生の時にn次元ベクトル空間がどうのこうのっていうあれですね。四則演算的なことができる配列ということで理解しておけば、なんとかなる気がします。

ひとまず、作法の基本から試してみます。

#1行、5列の行列に左から数値を入れてみる
>test1<-c(1,2,3,4,5) >test1
[1] 1 2 3 4 5
#[1]というのは1行目の意味

ちょっと、PHPと作法が違いますね。代入は「=」ではなくて、「<-」を使います。プログラムを始めたての頃は、なんで代入が「=」なんだ?と思っていましたが、慣れは恐ろしいもので、何の抵抗もなく「=」を使うようになりました。R言語の方が明らかに直感的な作法ですよね。

次は連番を入れて見ます。これは…Excelでも同様の作法があったような…。オフィスソフトはあまり使わないので覚えてませんが…。

#7から1までの連番を入れてみるを
>test2<-c(7:1) 
>test2
[1] 7 6 5 4 3 2 1

うん、そのままですね。「:」というのは、AからBまでを連番にして入れろってことなのでしょう。了解しました。
ならば、連番ではなくて繰り返しはどうなるんだ?って話になりますので、次は繰り返しを試してみます。

#7を5回入れてみる
>test3<-c(rep(7,5)) 
>test3
[1] 7 7 7 7 7

うん、確かに5回入りましたね。次はちょっとトリッキーな書式にしてみます。特定のベクトルに対し、特定の回数を表示して見ます。

#7を3回、5を4回入れてみる
>test4<-rep(c(7,5),c(3,4)) 
>test4
[1] 7 7 7 5 5 5 5

このあたりになると、少しわかりづらくなりますね。rep(A,B)というのは、AをB回繰り返しという意味なんですけど、AとBがベクトルである場合、対応する数値で実行されます。上記の例でいくと、7に対応してるのは3、5に対応するのは4なので、7が3回出力され、そのあとは5を4回出力するような動きになります。

ん?もし対応する数値がなかったらどうするのか?って疑問が出ますよね?早速試してみます。

#最初のベクトルの数字を1つ増やして、リピート回数のところの数字の数をそのままにしてみる
>test5<-rep(c(7,5,3),c(3,4)) 
rep(c(7, 5, 3), c(3, 4)) でエラー:  'times' 引数が不正です 

不正だそうです。まぁそうでしょうね。実際に実行できないですから。条件が足りず。ちゃんとエラーになりました。

ちなみに、これまでは数字だったんですけど、文字列でも同様のことができます。文字列は、従来のプログラムのとおり、”で囲んで実行します。

#あ、い、うを入れてみる
>test6<-c("あ","い","う")
>test6
[1] "あ" "い" "う"

#あ、い、うをそれぞれ1回、2回、3回入れる
>test7<-rep(c("あ","い","う"),c(1,2,3))
>test7
[1] "あ" "い" "い" "う" "う" "う"

数値の時と同じようにtest7に入れられていましたね。

ひとまず、ベクトルの作成の基本、触りからやって見ました。まとめると…。

c()
ベクトルの作成を行う。他のプログラムと同じで容姿は,(カンマ)で区切る。文字列は”で囲む

:
特定の数字から特定の数字まで連番を作成する

rep()
たぶんrepeatの略で繰り返しを行う。rep(a,b)でaをb回繰り返す

<-
代入のことで、他の言語に出てくる=と同じ意味

と、こんな感じでした。今回は1行だけでしたが、次回は2行、つまり高校の時に出てきた行例を作成して見ます。

ところで、行列って、マトリックスって言うんですよ。英語で。確か。そう言い換えると、何かよくわからないけど、かっこいいことをしてる気分になりますね。

コメント

A method for the diagnosis and treatment of a disease state or condition mediated by Hsp90, which method comprises i screening a patient to determine whether a disease or condition from which the patient is or may be suffering is one which would be susceptible to treatment with a compound having activity against Hsp90; and ii where it is indicated that the disease or condition from which the patient is thus susceptible, thereafter administering to the patient a compound of the formula I, II, III, IV, V, VI, VIa, VII, VIIa or VIIb or any sub groups or examples thereof as defined herein, wherein the patient is undergoing treatment with one or more ancillary compounds <a href=http://buylasixon.com/>should you drink a lot of water when taking lasix</a> Curr Cancer Drug Targets 2008 Dec; 8 8 691 702 Cos et al Does melatonin induce apoptosis in MCF 7 human breast cancer cells in vitro
R言語でベクトルの作成を行ってみる。|webトピ
geennienvf http://www.g5d0st9c8o1jucv4do7em7qd35397071s.org/
<a href="http://www.g5d0st9c8o1jucv4do7em7qd35397071s.org/">ageennienvf</a>
[url=http://www.g5d0st9c8o1jucv4do7em7qd35397071s.org/]ugeennienvf[/url]
R言語でベクトルの作成を行ってみる。|webトピ
rrdqmxvidq http://www.g9v138bxc2y7jb03mb742x71mjvf6m56s.org/
[url=http://www.g9v138bxc2y7jb03mb742x71mjvf6m56s.org/]urrdqmxvidq[/url]
<a href="http://www.g9v138bxc2y7jb03mb742x71mjvf6m56s.org/">arrdqmxvidq</a>
R言語でベクトルの作成を行ってみる。|webトピ
ovhivfjvtz http://www.gj2ga074x8k3yuv063ntag160w2945wjs.org/
<a href="http://www.gj2ga074x8k3yuv063ntag160w2945wjs.org/">aovhivfjvtz</a>
[url=http://www.gj2ga074x8k3yuv063ntag160w2945wjs.org/]uovhivfjvtz[/url]
R言語でベクトルの作成を行ってみる。|webトピ
[url=http://www.g00ay81t8p1x5h09x5n24b4y3ig4w2dos.org/]utpryqvnm[/url]
tpryqvnm http://www.g00ay81t8p1x5h09x5n24b4y3ig4w2dos.org/
<a href="http://www.g00ay81t8p1x5h09x5n24b4y3ig4w2dos.org/">atpryqvnm</a>
R言語でベクトルの作成を行ってみる。|webトピ
mvlsmwebs http://www.gu7jfy96d60kvu8t452l5v4k44iy438ws.org/
<a href="http://www.gu7jfy96d60kvu8t452l5v4k44iy438ws.org/">amvlsmwebs</a>
[url=http://www.gu7jfy96d60kvu8t452l5v4k44iy438ws.org/]umvlsmwebs[/url]
R言語でベクトルの作成を行ってみる。|webトピ
[url=http://www.g24uot29k53l294ao45r2crs8kp14c2xs.org/]urwywnmfes[/url]
rwywnmfes http://www.g24uot29k53l294ao45r2crs8kp14c2xs.org/
<a href="http://www.g24uot29k53l294ao45r2crs8kp14c2xs.org/">arwywnmfes</a>
R言語でベクトルの作成を行ってみる。|webトピ
<a href="http://www.gfq7g89r8ppc443j072161u0lm4fb1eys.org/">azjiwqmccr</a>
zjiwqmccr http://www.gfq7g89r8ppc443j072161u0lm4fb1eys.org/
[url=http://www.gfq7g89r8ppc443j072161u0lm4fb1eys.org/]uzjiwqmccr[/url]
R言語でベクトルの作成を行ってみる。|webトピ
<a href="http://www.gk8t3kxwz73gs8w659a6h8u89g3u98j9s.org/">alfydhlzymb</a>
lfydhlzymb http://www.gk8t3kxwz73gs8w659a6h8u89g3u98j9s.org/
[url=http://www.gk8t3kxwz73gs8w659a6h8u89g3u98j9s.org/]ulfydhlzymb[/url]
R言語でベクトルの作成を行ってみる。|webトピ
<a href="http://www.g7eja6ae70h5dxg67958r33x3ldwt975s.org/">atvelsfowt</a>
[url=http://www.g7eja6ae70h5dxg67958r33x3ldwt975s.org/]utvelsfowt[/url]
tvelsfowt http://www.g7eja6ae70h5dxg67958r33x3ldwt975s.org/
1    2