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問です。がんばってください。
© Copyright 2024 ExpyDoc