-
Couldn't load subscription status.
- Fork 0
ex2
-
まずコンソール上で
womenとタイプしてデータを表示せよ。womenデータは身長(height)がinch、体重(weight)がpound であらわされている。これを、身長をcm、体重をkg の単位に直したい。以下の手順でこれを行え。-
womenから身長の列を抜き出し、これをcm に変換して、hという変数に代入せよ。ただし、1 inch=2.54cm である。 -
womenから体重の列を抜き出し、これをkg に変換して、wという変数に代入せよ。ただし、1 pound=0.454kg である。 -
data.frame(height=h, weight=w)によって新しいデータフレームを作り、women2という変数に代入せよ。
-
-
前問で作成した
women2の各行について、その身長と体重からボディマス指数(BMI)を計算せよ。ただし、体重wkg、身長hm (cm ではない)の人のBMI はw/h^2で定義される。
-
R 入門の講義で用いた
cancerデータを使って、以下の問題を考えよう。変数cancerが残っていない場合は、作業ディレクトリを~/デスクトップ/gitc/data/2_Rに変更してからread.tableを使って読み込むこと(テキスト「データフレームの読込み1」)。- 男性で喫煙歴がある人のデータを抜き出し、結果を
cancer.subsetという変数に代入せよ。何人いるか。 - それらの人の
gene1の発現データを取り出し、その平均値を計算せよ。 - 抽出した結果をタブ区切りテキストとして
cancer.subset.txtというファイルに保存せよ。
- 男性で喫煙歴がある人のデータを抜き出し、結果を
-
散布図
-
gene1とgene2の散布図を作成し、genderによって点を色分けせよ。 - 散布図に回帰直線を引け。この回帰直線へのあてはめは、有意水準を 0.01 として有意であると言えるか。
-
-
* テキストでは、gene1 の発現量
gene1が性別genderによって違いがあるという結論が t検定で得られ、また癌のステージstageによっても違いがあるという結論が分散分析から得られた。ただし、癌のステージの中で明らかな違いがあるのは stage III のみであった(これはboxpot (gene1 ~ stage, cancer)で確認できる)。 そこで、genderの効果を考慮しつつstageの比較を行うため、Trellis Plot の技法を使ったプロットを作成してみよう。これを行うlattice packageは R に標準で含まれているが、使う際にはライブラリのロードが必要である。> library(lattice) > bwplot(gene1 ~ stage | gender, cancer)
bwplot は boxplot と同様に箱ひげ図を作成するが、特定の因子によって条件付けしたプロットを作成できる。ここでは、
gender によってまず被験者を female と male に分けて、そのそれぞれで箱ひげ図を作成している。この結果から
stage の gene1 の発現量への効果について、どのような結論が得られるか考察せよ。
-
* 発現量の相関
-
cancerデータから各患者のgene1からgene6の発現量を抜き出した部分データフレームを作成し、変数exprに代入せよ。 - 各遺伝子間の発現量の相関(散布図を描いたときに傾きを持つ直線上に分布する傾向)の強さは相関係数によって表される。相関係数は-1 から1 までの値を取り、0 が無相関を表す。相関係数が負の値のときは、傾きが負、すなわち一方が大きくなれば他方が小さくなる関係を表す。R では、行列の各カラム間の相関係数は、
cor関数によって一度に計算できる。これを用いてexprの各カラム間の相関係数を計算せよ。 - 相関係数の絶対値が 0.5 以上のときに強い相関があるとして、
gene1からgene6を、発現の相関の強さによっていくつかのグループに分けることができるかを検討せよ。ただし、絶対値をとるのはabs関数で行える。
-
-
与えられたベクトルに対し、二乗平均平方根(
root mean square)を計算する関数をRMSという名前で作成せよ。ただし、二乗平均平方根は、ベクトルの各要素を二乗した値の平均値の平方根であり、与えられた値(ベクトル)の平方根をとる関数はsqrtである。また、関数はエディタを使って作成すること。作成した関数を使ってRMS(1:5)を計算せよ。 -
* 「関数の作成(2)」のスライドで使用した
plotAll関数について考えよう。- プログラムのソースコード(
plotAll.R)を直接読み込むのではなく、エディタで開いてからマウスでコマンド全体を選択して実行してみよう(「エディタからのコマンドの入力と実行」参照)。これでplotAll関数が定義される。これを用いてplotAll(cancer[,1:4])を実行せよ。 -
plotAll関数は、引数が一つのときは、そのデータフレーム内での総当たりのプロットを作成するが、対角線上とそれ以外とでは異なるコマンドでプロットを作成している。左上のプロット、およびその下の2行1列目のプロットと同じプロットを直接作成するplotコマンドはそれぞれどのようなものか、plotAll.Rのプログラムから考えてみよ。ただし、タイトル(main)やラベル(xlab,ylab)をつけるところは難しいので無視してよい。
- プログラムのソースコード(