Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rデモ01_はじめの一歩2016

99 views

Published on

演習用のデモコードです。

Published in: Education
  • Be the first to like this

Rデモ01_はじめの一歩2016

  1. 1. #------------------------------------------------------- # 演習 1) まず電卓として #------------------------------------------------------- 1 + 2 + 5 + 10 4 * 185 2^5 # べき乗の計算 sqrt(2) # 平方根 log10(1000) # 常用対数の計算 exp(10) + exp(2) sum(1:100) # 1 から 100 までの整数を全て合計する round(sqrt(2)) # 四捨五入 round(sqrt(2), digits=2) # 少数点第三位を四捨五入 ceiling(sqrt(2)) # 切り上げ floor(1.9) # 切り捨て # 式が長すぎる場合、続くことがわかるようなところで改行すれば、続きを次の行に書いても大丈夫 1+2+3+ 4+5+6 # 二つ以上の計算式を一行に書くときは、セミコロンを使う 1+2+3; 4+5+6; # 他にも、各自でいろいろ試してみてください #------------------------------------------------------- # 演習 2) 様々なデータ型の変数 #------------------------------------------------------- #----------------------------- # 実数データと整数データ #----------------------------- x1 <- 1 x2 <- 6.78 mode(x1) # numeric : 数字 mode(x2) # numeric : 数字 # 整数に変換 as.integer(x1) as.integer(x2) # 少数点部分を落として強制的に整数に x1 <- as.integer(x1) # ここで x1 を整数型にしておく #-----------------------------
  2. 2. # 文字データ #----------------------------- x3 <- c("ab", "cde", "f") x4 <- "1234" # ""で囲むと数字でも文字扱い mode(x3) # "character" mode(x4) # "character" # 文字を整数に変換してみる as.integer(x3) # 中身がアルファベットなので警告が出て全て NA に変換される as.integer(x4) # 文字列の中身が数字だけであれば変換可能 #----------------------------- # 論理値データ #----------------------------- x5 <- TRUE x6 <- FALSE mode(x5) # "logical" mode(x6) # "logical" #------------------------------------------------------- # 演習 3) 計算できるデータ型は? #------------------------------------------------------- # 演習 2 で作成した x1--x6 を使います。 x1 * 1.5 # ○ x2 * 1.5 # ○ x3 * 1.5 # × x4 * 1.5 # × x5 * 1.5 # ○ x6 * 1.5 # ○ # ※ 論理値データは、True は 1、False は 0 として計算されることに注意! # x4 は整数変換可能なので型変換すれば計算可能 as.integer(x4) * 1.5 # ○ # 整数型に 1.5 を掛けると? x7 <- x1 * 1.5 mode(x7) # x7 は自動的に実数型(numeric)になり計算に問題はおこらない #------------------------------------------------------- # 演習 4) 様々なデータの構造 #-------------------------------------------------------
  3. 3. #----------------------------- # 数値・文字列ベクトル #----------------------------- y1 <- c(1, 2, 3) y2 <- c("a", "bcd", "ef", "ghijkl") is.vector(y1); is.vector(y2) # 型は整数と文字列だが、どちらも構造はベクトル #----------------------------- # 数値や文字列の行列の作成 #----------------------------- # 数値の行列 y3 <- matrix(1:9, nc=3) y3 # 要素は縦並びに格納される y3[2,2] # 2 行 2 列の要素を取り出す y3[3,] # 3 行目の要素全てを取り出す y3[,3] # 3 列目の要素全てを取り出す y3 <- matrix(1:9, nc=3, nr=4) y3 # 要素が足りないときは要素が自動的に再利用される! # 文字列の行列 (y4 <- matrix(c("a", "bc", "def", "ef", "g", "h"), nr=2)) #----------------------------- # 配列 #----------------------------- (y5 <- array(1:24, c(2,3,4))) # 個別の要素の指定方法 y5[1,1,1] # 要素の部分的な指定方法 y5[,,-1] #----------------------------- # リスト #----------------------------- (y6 <- list(y1, y2, y3, y4, y5)) # 個別の要素の指定方法 y6[[2]][2]
  4. 4. # さらに構成要素に名前をつける names(y6) <- c("y1", "y2", "y3", "y4", "y5") y6 # つけた個別要素名を使った指定の方法 y6$y5[1,2,1] # 構造確認の方法 str(y6) #----------------------------- # cbind, rbind #----------------------------- (z1 <- c(1,2,3)) # 要素数 3 の縦ベクトル (z2 <- matrix(1:9, nc=3, nr=4)) # 4×3 の行列 (z3 <- rbind(z1, z2)) # 5×3 の行列 (z4 <- c(1,2,3,4,5)) # 要素数 5 の縦ベクトル (z5 <- cbind(z3, z4)) # 5×4 の行列 z5[2,4] # 2 #########################################################

×