Más contenido relacionado
La actualidad más candente (9)
Rデモ01_はじめの一歩2016
- 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. # 文字データ
#-----------------------------
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. #-----------------------------
# 数値・文字列ベクトル
#-----------------------------
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. # さらに構成要素に名前をつける
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
#########################################################