


z <- matrix(1:20, nrow=4, ncol=5)
z # 매트릭스 z의 내용을 출력
z <- matrix(1:20, nrow=4, ncol=5)
z
[,1][,2] [,3][,4] [,5][1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
z2 <- matrix(1:20, nrow=4, ncol=5, byrow=T)
z2 # 매트릭스 z2의 내용을 출력
z2 <- matrix(1:20, nrow=4, ncol=5, byrow=T)
z2 # 매트릭스 z2의 내용을 출력
[,1][,2] [,3][,4] [,5][1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20
x <- 1:4 # 벡터 x 생성
y <- 5:8 # 벡터 y 생성
z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성
m1 <- cbind(x,y) # x와 y를 열 방향으로 결합하여 매트릭스 생성
m1 # 매트릭스 m1의 내용을 출력
m2 <- rbind(x,y) # x와 y를 행 방향으로 결합하여 매트릭스 생성
m2 # 매트릭스 m2의 내용을 출력
m3 <- rbind(m2,x) # 매트릭스 m2와 벡터 x를 행 방향으로 결합
m3 # 매트릭스 m3의 내용을 출력
m4 <- cbind(z,x) # 매트릭스 z와 벡터 x를 열 방향으로 결합
m4 # 매트릭스 m4의 내용을 출력
x <- 1:4 # 벡터 x 생성
y <- 5:8 # 벡터 y 생성
z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성
m1 <- cbind(x,y) # x와 y를 열 방향으로 결합하여 매트릭스 생성
m1 # 매트릭스 m1의 내용을 출력
x y
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8
m2 <- rbind(x,y) # x와 y를 행 방향으로 결합하여 매트릭스 생성
m2 # 매트릭스 m2의 내용을 출력
[,1][,2] [,3][,4]
x 1 2 3 4
y 5 6 7 8
m3 <- rbind(m2,x) # 매트릭스 m2와 벡터 x를 행 방향으로 결합
m3 # 매트릭스 m3의 내용을 출력
[,1][,2] [,3][,4]
x 1 2 3 4
y 5 6 7 8
x 1 2 3 4
m4 <- cbind(z,x) # 매트릭스 z와 벡터 x를 열 방향으로 결합
m4 # 매트릭스 m4의 내용을 출력
x
[1,] 1 5 9 13 17 1
[2,] 2 6 10 14 18 2
[3,] 3 7 11 15 19 3
[4,] 4 8 12 16 20 4
매트릭스에서 특정 위치에 있는 값을 추출하는 방법은 벡터와 유사
값들의 위치를 나타내는 인덱스를 사용하는데, 2차원상에서 위치를 지정하려면 2개 필요
z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성
z # 매트릭스 z의 내용 출력
z[2,3] # 2행 3열에 있는 값
z[1,4] # 1행 4열에 있는 값
z[2,] # 2행에 있는 모든 값
z[,4] # 4열에 있는 모든 값
z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성
z # 매트릭스 z의 내용 출력
[,1][,2] [,3][,4] [,5][1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
z[2,3] # 2행 3열에 있는 값
[1] 10
z[1,4] # 1행 4열에 있는 값
[1] 13
z[2,] # 2행에 있는 모든 값
[1] 2 6 10 14 18
z[,4] # 4열에 있는 모든 값
[1] 13 14 15 16

z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성
z # 매트릭스 z의 내용 출력
z[2,1:3] # 2행의 값 중 1~3열에 있는 값
z[1,c(1,2,4)] # 1행의 값 중 1, 2, 4열에 있는 값
z[1:2,] # 1, 2행에 있는 모든 값
z[,c(1,4)] # 1, 4열에 있는 모든 값
z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성
z # 매트릭스 z의 내용 출력
[,1][,2] [,3][,4] [,5][1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
z[2,1:3] # 2행의 값 중 1~3열에 있는 값
[1] 2 6 10
z[1,c(1,2,4)] # 1행의 값 중 1, 2, 4열에 있는 값
[1] 1 5 13
z[1:2,] # 1, 2행에 있는 모든 값
[,1][,2] [,3][,4] [,5][1,] 1 5 9 13 17
[2,] 2 6 10 14 18
z[,c(1,4)] # 1, 4열에 있는 모든 값
[,1][,2]
[1,] 1 13
[2,] 2 14
[3,] 3 15
[4,] 4 16
score <- matrix(c(90,85,69,78,
85,96,49,95,
90,80,70,60),
nrow=4, ncol=3)
score
rownames(score) <- c('John','Tom','Mark','Jane’)
colnames(score) <- c('English','Math','Science’)
score
score <- matrix(c(90,85,69,78,
85,96,49,95,90,80,70,60), scorenrow=4, ncol=3)
[,1][,2] [,3][1,] 90 85 90
[2,] 85 96 80
[3,] 69 49 70
[4,] 78 95 60
rownames(score) <- c('John','Tom','Mark','Jane')
colnames(score) <- c('English','Math','Science')
score
English Math Science
John 90 85 90
Tom 85 96 80
Mark 69 49 70
Jane 78 95 60
score['John','Math'] # John의 수학 성적
score['Tom',c('Math','Science')] # Tom의 수학, 과학 성적
score['Mark',] # Mark의 모든 과목 성적
score[,'English'] # 모든 학생의 영어 성적
rownames(score) # score의 행의 이름
colnames(score) # score의 열의 이름
colnames(score)[2] # score의 열의 이름 중 두 번째 값
score['John','Math'] # John의 수학 성적
[1] 85
score['Tom',c('Math','Science')] # Tom의 수학, 과학 성적
Math Science
96 80
score['Mark',] # Mark의 모든 과목 성적
English Math Science
69 49 70
score[,'English'] # 모든 학생의 영어 성적
John Tom Mark Jane
90 85 69 78
rownames(score) # score의 행의 이름
[1] "John" "Tom" "Mark" "Jane"
colnames(score) # score의 열의 이름
[1] "English" "Math" "Science"
colnames(score)[2] # score의 열의 이름 중 두 번째 값
[1] "Math"

city <- c("Seoul","Tokyo","Washington") # 문자로 이루어진 벡터
rank <- c(1,3,2) # 숫자로 이루어진 벡터
city.info <- data.frame(city, rank) # 데이터프레임 생성
city.info # city.info의 내용 출력
city <- c("Seoul","Tokyo","Washington") # 문자로 이루어진 벡터
rank <- c(1,3,2) # 숫자로 이루어진 벡터
city.info <- data.frame(city, rank) # 데이터프레임 생성
city.info # city.info의 내용 출력
city rank
1 Seoul 1
2 Tokyo 3
3 Washington 2


iris[,c(1:2)] # 1, 2열의 모든 데이터
iris[,c(1,3,5)] # 1, 3, 5열의 모든 데이터
iris[,c("Sepal.Length","Species")] # 1, 5열의 모든 데이터
iris[1:5,] # 1~5행의 모든 데이터
iris[1:5,c(1,3)] # 1~5행의 데이터 중 1, 3열의 데이터
dim(iris) # 행과 열의 개수 출력
nrow(iris) # 행의 개수 출력
ncol(iris) # 열의 개수 출력
colnames(iris) # 열 이름 출력, names( )와 결과 동일
head(iris) # 데이터셋의 앞부분 일부 출력
tail(iris) # 데이터셋의 뒷부분 일부 출력
dim(iris) # 행과 열의 개수 출력
[1] 150 5
nrow(iris) # 행의 개수 출력
[1] 150
ncol(iris) # 열의 개수 출력
[1] 5
colnames(iris) # 열 이름 출력, names( )와 결과 동일
[1] "Sepal.Length" "Sepal.Width" "Petal.Length"
[4] "Petal.Width" "Species"
head(iris) # 데이터셋의 앞부분 일부 출력
Sepal.Length Sepal.Width Petal.Length
1 5.1 3.5 1.4
2 4.9 3.0 1.4
3 4.7 3.2 1.3
4 4.6 3.1 1.5
5 5.0 3.6 1.4
6 5.4 3.9 1.7
Petal.Width Species
1 0.2 setosa
2 0.2 setosa
3 0.2 setosa
4 0.2 setosa
5 0.2 setosa
6 0.4 setosa
tail(iris) # 데이터셋의 뒷부분 일부 출력
Sepal.Length Sepal.Width Petal.Length
145 6.7 3.3 5.7
146 6.7 3.0 5.2
147 6.3 2.5 5.0
148 6.5 3.0 5.2
149 6.2 3.4 5.4
150 5.9 3.0 5.1
Petal.Width Species
145 2.5 virginica
146 2.3 virginica
147 1.9 virginica
148 2.0 virginica
149 2.3 virginica
150 1.8 virginica
str(iris) # 데이터셋 요약 정보 보기
iris[,5] # 품종 데이터 보기
unique(iris[,5]) # 품종의 종류 보기(중복 제거)
table(iris[,"Species"]) # 품종의 종류별 행의 개수 세기

colSums(iris[,-5]) # 열별 합계
colMeans(iris[,-5]) # 열별 평균
rowSums(iris[,-5]) # 행별 합계
rowMeans(iris[,-5]) # 행별 평균
z <- matrix(1:20, nrow=4, ncol=5)
z
t(z) # 행과열 방향 전환
z <- matrix(1:20, nrow=4, ncol=5)
z
[,1][,2] [,3][,4] [,5][1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
t(z) # 행과열 방향 전환
[,1][,2] [,3][,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[4,] 13 14 15 16
[5,] 17 18 19 20
IR.1 <- subset(iris, Species=="setosa")
IR.1
IR.2 <- subset(iris, Sepal.Length>5.0 &
Sepal.Width>4.0)
IR.2
IR.2[, c(2,4)] # 2, 4열의 값만 추출
a <- matrix(1:20,4,5)
b <- matrix(21:40,4,5)
a
b
2*a # 매트릭스 a에 저장된 값들에 2를 곱하기
b-5
2*a + 3*b
a+b
b-a
b/a
a*b
a <- a*3
b <- b-5
a <- matrix(1:20,4,5)
b <- matrix(21:40,4,5)
a
[,1][,2] [,3][,4] [,5][1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
b
[,1][,2] [,3][,4] [,5][1,] 21 25 29 33 37
[2,] 22 26 30 34 38
[3,] 23 27 31 35 39
[4,] 24 28 32 36 40
2a # 매트릭스 a에 저장된 값들에 2를 곱하기
[,1][,2] [,3][,4] [,5][1,] 2 10 18 26 34
[2,] 4 12 20 28 36
[3,] 6 14 22 30 38
[4,] 8 16 24 32 40
b-5
[,1][,2] [,3][,4] [,5][1,] 16 20 24 28 32
[2,] 17 21 25 29 33
[3,] 18 22 26 30 34
[4,] 19 23 27 31 35
2a + 3b
[,1][,2] [,3][,4] [,5][1,] 65 85 105 125 145
[2,] 70 90 110 130 150
[3,] 75 95 115 135 155
[4,] 80 100 120 140 160
a+b
[,1][,2] [,3][,4] [,5][1,] 22 30 38 46 54
[2,] 24 32 40 48 56
[3,] 26 34 42 50 58
[4,] 28 36 44 52 60
b-a
[,1][,2] [,3][,4] [,5][1,] 20 20 20 20 20
[2,] 20 20 20 20 20
[3,] 20 20 20 20 20
[4,] 20 20 20 20 20
b/a
[,1][,2] [,3][,4]
[1,] 21.000000 5.000000 3.222222 2.538462
[2,] 11.000000 4.333333 3.000000 2.428571
[3,] 7.666667 3.857143 2.818182 2.333333
[4,] 6.000000 3.500000 2.666667 2.250000
[,5][1,] 2.176471
[2,] 2.111111
[3,] 2.052632
[4,] 2.000000
ab
[,1][,2] [,3][,4] [,5][1,] 21 125 261 429 629
[2,] 44 156 300 476 684
[3,] 69 189 341 525 741
[4,] 96 224 384 576 800
a <- a*3
b <- b-5
class(iris) # iris 데이터셋의 자료구조 확인
class(state.x77) # state.x77 데이터셋의 자료구조 확인
is.matrix(iris) # 데이터셋이 매트릭스인지를 확인하는 함수
is.data.frame(iris) # 데이터셋이 데이터프레임인지를 확인하는 함수
is.matrix(state.x77)
is.data.frame(state.x77)
class(iris) # iris 데이터셋의 자료구조 확인
[1] "data.frame"
class(state.x77) # state.x77 데이터셋의 자료구조 확인
[1] "matrix" "array"
is.matrix(iris) # 데이터셋이 매트릭스인지를 확인하는 함수
[1] FALSE
is.data.frame(iris) # 데이터셋이 데이터프레임인지를 확인하는 함수
[1] TRUE
is.matrix(state.x77)
[1] TRUE
is.data.frame(state.x77)
[1] FALSE
# 매트릭스를 데이터프레임으로 변환
st <- data.frame(state.x77)
head(st)
class(st)
# 데이터프레임을 매트릭스로 변환
iris.m <- as.matrix(iris[,1:4])
head(iris.m)
class(iris.m)
매트릭스를 데이터프레임으로 변환
st <- data.frame(state.x77)
head(st)
Population Income Illiteracy
Alabama 3615 3624 2.1
Alaska 365 6315 1.5
Arizona 2212 4530 1.8
Arkansas 2110 3378 1.9
California 21198 5114 1.1
Colorado 2541 4884 0.7
Life.Exp Murder HS.Grad Frost
Alabama 69.05 15.1 41.3 20
Alaska 69.31 11.3 66.7 152
Arizona 70.55 7.8 58.1 15
Arkansas 70.66 10.1 39.9 65
California 71.71 10.3 62.6 20
Colorado 72.06 6.8 63.9 166
Area
Alabama 50708
Alaska 566432
Arizona 113417
Arkansas 51945
California 156361
Colorado 103766
class(st)
[1] "data.frame"데이터프레임을 매트릭스로 변환
iris.m <- as.matrix(iris[,1:4])
head(iris.m)
Sepal.Length Sepal.Width Petal.Length
[1,] 5.1 3.5 1.4
[2,] 4.9 3.0 1.4
[3,] 4.7 3.2 1.3
[4,] 4.6 3.1 1.5
[5,] 5.0 3.6 1.4
[6,] 5.4 3.9 1.7
Petal.Width
[1,] 0.2
[2,] 0.2
[3,] 0.2
[4,] 0.2
[5,] 0.2
[6,] 0.4
class(iris.m)
[1] "matrix" "array"
iris[,"Species"] # 결과=벡터. 매트릭스와 데이터프레임 모두 가능
iris[,5] # 결과=벡터. 매트릭스와 데이터프레임 모두 가능
iris["Species"] # 결과=데이터프레임. 데이터프레임만 가능
iris[5] # 결과=데이터프레임. 데이터프레임만 가능
iris$Species # 결과=벡터. 데이터프레임만 가능