[14-01-23]

7.2 데이터 프레임 접근

d <- data.frame(x = c(1, 2, 3, 4, 5), y = c(2, 4, 6, 8, 10))
d$x
## [1] 1 2 3 4 5
d[1, ]
##   x y
## 1 1 2
d[1, 2]
## [1] 2

벡터로 인덱스를 지정하거나 제외할 행 또는 열을 -로 표시할 수 있다.

d[c(1, 3), 2]
## [1] 2 6
d[-c(1, 3), -2]
## [1] 2 4 5

또는 컬럼명을 지정할 수도 있다.

d[, c("x", "y")]
##   x  y
## 1 1  2
## 2 2  4
## 3 3  6
## 4 4  8
## 5 5 10
d[, "x"]
## [1] 1 2 3 4 5
d[, "x", drop = FALSE]
##   x
## 1 1
## 2 2
## 3 3
## 4 4
## 5 5
str(d)
## 'data.frame':    5 obs. of  2 variables:
##  $ x: num  1 2 3 4 5
##  $ y: num  2 4 6 8 10
d <- data.frame(x = 1:10000)
head(d)
##   x
## 1 1
## 2 2
## 3 3
## 4 4
## 5 5
## 6 6
x <- data.frame(1:3)
x
##   X1.3
## 1    1
## 2    2
## 3    3
colnames(x) <- c("val")  #names()는 colnames()와 같은 기능
rownames(x) <- c("a", "b", "c")
x
##   val
## a   1
## b   2
## c   3

%in% 연산자를 이용해 특정 조건을 만족시키는 열만 선택하는 작업을 손쉽게 할 수 있다.

(d <- data.frame(a = 1:3, b = 4:6, c = 7:9))
##   a b c
## 1 1 4 7
## 2 2 5 8
## 3 3 6 9
d[, names(d) %in% c("b", "c")]
##   b c
## 1 4 7
## 2 5 8
## 3 6 9
d[, !names(d) %in% c("a")]
##   b c
## 1 4 7
## 2 5 8
## 3 6 9