R入門

R入門
配列と行列(5.8~5.10)
発表日:10月23日
発表者:時田 陽一
5.8 区分化された行列を作る
●行列 : cbind(),rbind()を用いて作ることができる
dim,array()は
配列を作るため
に用いる
cbind() : いくつかの行列(ベクトル)を垂直に並べる(行順)
rbind() : いくつかの行列(ベクトル)を水平に並べる(列順)
> X <- cbind(arg_1, arg_2, arg_3, …)
X : arg_1
arg_2
arg_3

> Y <- rbind(arg_1, arg_2, arg_3, …)
 arg_1
 arg2
Y :
arg_3









●引数は任意の長さのベクトル
か行列(cbindは列,rbindは行
サイズが同じ)
●ベクトルは短くてもリサイクル
使用される
5.9 配列に対する結合関数
cbind(),rbind():dim属性を尊重する結合関数
基本関数c():dim属性,dimnames属性を取り払う
配列を単純なベクトルオブジェクトに強制変換できる
正式な方法:
> vec <- as.vector(X)
基本関数c()を用いる:
> vec <- c(X)
両者は同じ結果を生み出す
どちらを使うかは趣味の問題である
5.10 因子から度数分布表を作る(1)
関数table() :等しい長さの因子から頻度表を計算する
k個のカテゴリが引数として与えられれば,結果は
k-元の頻度配列
table()の例{先週の結城君の例を用いる}
> tiiki <- c(“mit”, “hit”, “mit”, “hit”)
> tiikif <- factor(tiiki)
> tiikifr <- table(tiikif)
出力結果は以下のようになる
hit
mit
2
2
5.10 因子から度数分布表を作る(2)
先週の結城君の例を用いて度数分布表を作る
> height <- c(171,168,173,155)
> factor( cut( height, breaks = 150+10*(0:5))) -> heightf
こうすると,heightのデータが150から10づつで200までの4つの
階級に区切られ,それの因子を作る.
出力結果は以下の通り
> table(heightf,tiikif)
tiikif
heightf
hit mit
(150,160] 1 0
(160,170] 1 0
(170,180] 0 2
宿題
① a  1,2,3 , b  4,5,6 , c  7,8,9 の3つのベクトルがある.
t
これらを a, b, c と結合させた行列 A を作り,またその転置行列 A
を作り,それらを結合させた3×6行列 A, At  を作りなさい.(行列は
rbind()か cbind()を用いて作ること)
t
t
t
② dim属性を持つ任意の2次元配列をベクトルに強制変換しなさい.
ここで,変換はas.vector()とc()を用いた2通りの方法で行い,その
結果が同じであることを確かめなさい.
③ 先週の結城君の課題でのベクトル(ken, attend)を用い,各研究室
の出席日数の度数分布表を求めなさい.ただし,階級の幅は3日と
する.
以上3問です。がんばってください。