ベクトルを作成する。combineの省略形
x <- c(1,2,3,4)
x
## [1] 1 2 3 4
class(x)
## [1] "numeric"
行列を作成する。
y <- matrix(1:9, nrow = 3, ncol = 3)
y
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
class(y)
## [1] "matrix"
ベクトルの長さを求める、次元を求める、列数を求める、行数を求める。
str(mtcars, list.len = 0)
## 'data.frame': 32 obs. of 11 variables:
## [list output truncated]
# ベクトルの長さ
length(mtcars)
## [1] 11
# 次元
dim(mtcars)
## [1] 32 11
# 列数
nrow(mtcars)
## [1] 32
# 行数
ncol(mtcars)
## [1] 11
列結合(行数一致が条件)、行結合(列名・データ型一致が条件)
# サンプルデータを条件抽出
x <- mtcars[mtcars["mpg"] >= 30.0,]
# 列の集約
x <- x[c(1,4,6)]
# kgに変換
wt_kg <- x$wt[] * 453.592
# 列追加
x <- cbind(x, wt_kg)
x
## mpg hp wt wt_kg
## Fiat 128 32.4 66 2.200 997.9024
## Honda Civic 30.4 52 1.615 732.5511
## Toyota Corolla 33.9 65 1.835 832.3413
## Lotus Europa 30.4 113 1.513 686.2847
# 列データの作成(各列の平均を算出)
ttl <- c(mean(x$mpg),mean(x$hp),mean(x$wt),mean(x$wt_kg))
ttl
## [1] 31.77500 74.00000 1.79075 812.26987
# 行の追加
x <- rbind(x, ttl)
x
## mpg hp wt wt_kg
## Fiat 128 32.400 66 2.20000 997.9024
## Honda Civic 30.400 52 1.61500 732.5511
## Toyota Corolla 33.900 65 1.83500 832.3413
## Lotus Europa 30.400 113 1.51300 686.2847
## 5 31.775 74 1.79075 812.2699
ベクトルには名前情報を属性としてつけられ、その名前で参照することができる。
# サンプルデータを条件抽出
x <- mtcars[mtcars["mpg"] >= 30.0,]
# 列の集約
x <- x[c(1,4,6)]
x
## mpg hp wt
## Fiat 128 32.4 66 2.200
## Honda Civic 30.4 52 1.615
## Toyota Corolla 33.9 65 1.835
## Lotus Europa 30.4 113 1.513
# 列名を変更
names(x) <- c("燃費","馬力","総重量")
x
## 燃費 馬力 総重量
## Fiat 128 32.4 66 2.200
## Honda Civic 30.4 52 1.615
## Toyota Corolla 33.9 65 1.835
## Lotus Europa 30.4 113 1.513
# 3列目の列名を取得
colnames(x[3])
## [1] "総重量"
# 3行目の行名を取得
rownames(x[3,])
## [1] "Toyota Corolla"
行列、ベクトル、データフレームを転置する。
# サンプルデータを条件抽出
x <- mtcars[mtcars["mpg"] >= 30.0,]
x
## mpg cyl disp hp drat wt qsec vs am gear carb
## Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
## Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
## Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 1 5 2
t(x)
## Fiat 128 Honda Civic Toyota Corolla Lotus Europa
## mpg 32.40 30.400 33.900 30.400
## cyl 4.00 4.000 4.000 4.000
## disp 78.70 75.700 71.100 95.100
## hp 66.00 52.000 65.000 113.000
## drat 4.08 4.930 4.220 3.770
## wt 2.20 1.615 1.835 1.513
## qsec 19.47 18.520 19.900 16.900
## vs 1.00 1.000 1.000 1.000
## am 1.00 1.000 1.000 1.000
## gear 4.00 4.000 4.000 5.000
## carb 1.00 2.000 1.000 2.000
行列の対角方向の抽出
m <- matrix(1:25, ncol = 5)
m
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 6 11 16 21
## [2,] 2 7 12 17 22
## [3,] 3 8 13 18 23
## [4,] 4 9 14 19 24
## [5,] 5 10 15 20 25
col(m) == row(m)
## [,1] [,2] [,3] [,4] [,5]
## [1,] TRUE FALSE FALSE FALSE FALSE
## [2,] FALSE TRUE FALSE FALSE FALSE
## [3,] FALSE FALSE TRUE FALSE FALSE
## [4,] FALSE FALSE FALSE TRUE FALSE
## [5,] FALSE FALSE FALSE FALSE TRUE
m[col(m) == row(m)]
## [1] 1 7 13 19 25
diag(m)
## [1] 1 7 13 19 25
ベクトル・行列・配列に対して、行(1)・列(2)方向に統計量を演算する。
例:sweep(df, MARGIN = 1, 1:3, “+”)
# サンプルデータを条件抽出
x <- mtcars[mtcars["mpg"] >= 30.0,]
# 列の集約
x <- x[c(1,4,6)]
x
## mpg hp wt
## Fiat 128 32.4 66 2.200
## Honda Civic 30.4 52 1.615
## Toyota Corolla 33.9 65 1.835
## Lotus Europa 30.4 113 1.513
sweep(x, 2, c(1.0, 10, 0.5), "+")
## mpg hp wt
## Fiat 128 33.4 76 2.700
## Honda Civic 31.4 62 2.115
## Toyota Corolla 34.9 75 2.335
## Lotus Europa 31.4 123 2.013
copyrigth © 2016 r-beginners.com All rigths reserved.
PAGE TOP ▲