rデモ01_はじめの一歩2016
TRANSCRIPT
#-------------------------------------------------------# 演習 1) まず電卓として
#-------------------------------------------------------1 + 2 + 5 + 104 * 1852^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 <- 1x2 <- 6.78
mode(x1) # numeric : 数字
mode(x2) # numeric : 数字
# 整数に変換
as.integer(x1)
as.integer(x2) # 少数点部分を落として強制的に整数に
x1 <- as.integer(x1) # ここで x1 を整数型にしておく
#-----------------------------# 文字データ
#-----------------------------x3 <- c("ab", "cde", "f") x4 <- "1234" # ""で囲むと数字でも文字扱い
mode(x3) # "character"mode(x4) # "character"
# 文字を整数に変換してみる
as.integer(x3) # 中身がアルファベットなので警告が出て全て NA に変換される
as.integer(x4) # 文字列の中身が数字だけであれば変換可能
#-----------------------------# 論理値データ
#-----------------------------x5 <- TRUEx6 <- FALSEmode(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.5mode(x7) # x7 は自動的に実数型(numeric)になり計算に問題はおこらない
#-------------------------------------------------------# 演習 4) 様々なデータの構造
#-------------------------------------------------------#-----------------------------# 数値・文字列ベクトル
#-----------------------------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]
# さらに構成要素に名前をつける
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
#########################################################