# 벡터를 이용해 데이터 프레임 생성
> number <- c(1:5)
> name <- c('alpha', 'beta', 'gamma', 'zeta', 'hexa')
> score <- c(77, 53, 97, 46, 82)
> exam_data = data.frame(순번 = number, 이름 = name, 점수 = score)
> exam_data
순번 이름 점수
1 1 alpha 77
2 2 beta 53
3 3 gamma 97
4 4 zeta 46
5 5 hexa 82
# 행렬을 이용해 데이터 프레임 생성
> a = matrix(c(1, 'alpha', 77, 2, 'beta', 53, 3, 'gamma', 97), 3, byrow=T)
> a
[,1] [,2] [,3]
[1,] "1" "alpha" "77"
[2,] "2" "beta" "53"
[3,] "3" "gamma" "97"
> exam_data = data.frame(a)
> exam_data
X1 X2 X3
1 1 alpha 77
2 2 beta 53
3 3 gamma 97
#데이터프레임의 column명 변경
> exam_data
X1 X2 X3
1 1 alpha 77
2 2 beta 53
3 3 gamma 97
> names(exam_data) <- c( 'a', 'b', 'c')
> exam_data
a b c
1 1 alpha 77
2 2 beta 53
3 3 gamma 97
> names(exam_data)[3] <- c('change') // 특정 column만 변경
> exam_data
a b change
1 1 alpha 77
2 2 beta 53
3 3 gamma 97
# column 추가하기
> exam_data$new = NA // new라는 이름을 가진 column을 추가, 값은 NA로 고정.
> exam_data
a b change new
1 1 alpha 77 NA
2 2 beta 53 NA
3 3 gamma 97 NA
> v= c(2:4)
> v
[1] 2 3 4
> exam_data$new = v
> exam_data
a b c new
1 1 alpha 77 2
2 2 beta 53 3
3 3 gamma 97 4 //이렇게도 할 수 있다.
# column 삭제하기
> exam_data
a b c new
1 1 alpha 77 2
2 2 beta 53 3
3 3 gamma 97 4
> exam_data[4] = NULL
> exam_data
a b c
1 1 alpha 77
2 2 beta 53
3 3 gamma 97
# 데이터 프레임의 subset
> x = c(1:5)
> y = c(6:10)
> data = data.frame(x, y)
> data
x y
1 1 6
2 2 7
3 3 8
4 4 9
5 5 10
> d_x1 = subset(data, x>=3)
> d_x1
x y
3 3 8
4 4 9
5 5 10
> d_y1 = subset(data, y<=8)
> d_y1
x y
1 1 6
2 2 7
3 3 8
> d_xy1 = subset(data, x>=2 & y>8)
> d_xy1
x y
4 4 9
5 5 10
> d_xy2 = subset(data, x<=2 | y>8)
> d_xy2
x y
1 1 6
2 2 7
4 4 9
5 5 10
# 데이터 프레임 구조 파악하기
> exam_data
a b c
1 1 alpha 77
2 2 beta 53
3 3 gamma 97
> nrow(exam_data) // row의 개수
[1] 3
> ncol(exam_data) // column의 개수
[1] 3
> names(exam_data) // column의 이름
[1] "a" "b" "c"
> colnames(exam_data) // 동일
[1] "a" "b" "c"
> attributes(exam_data) // 데이터 프레임의 요소
$names
[1] "a" "b" "c"
$row.names
[1] 1 2 3
$class
[1] "data.frame"
경희대학교 소프트웨어융합학과 SiRyu StudioR Programming 06