R에서 데이터프레임을 조건 검색하는 방법이다.
우선 샘플 데이터프레임을 생성하자
data <- data.frame(
date = c('2013-12-01','2013-12-02','2013-12-03','2013-12-04','2013-12-05'),
count = c(1,2,3,4,5),
price = c(500,3000,10000,50,600),
store = c('강남점','신림점','홍대점','건대점','신촌점')
)
## date count price store
## [1,] 2013-12-01 1 500 강남점
## [2,] 2013-12-02 2 3000 신림점
## [3,] 2013-12-03 3 10000 홍대점
## [4,] 2013-12-04 4 50 건대점
## [5,] 2013-12-05 5 600 신촌점
1. 여기서 store가 "강남점"일때만 검색해보자.
library(data.table)
data <- data.table(data)
store <- data[, length(which(store=='강남점')), by=names(data)]
여기서 store를 확인하면 V1 이라는 새로운 컬럼이 생긴 것을 알 수 있으며 조건에 만족할 경우 1(true)로 세팅되어 있다.
## date count price store V1
## [1,] 2013-12-01 1 500 강남점 1
## [2,] 2013-12-02 2 3000 신림점 0
## [3,] 2013-12-03 3 10000 홍대점 0
## [4,] 2013-12-04 4 50 건대점 0
## [5,] 2013-12-05 5 600 신촌점 0
조건이 1(true)만 가져오기
store[V1=="1"]
## date count price store V1
## [1,] 2013-12-01 1 500 강남점 1
2. date(날짜) 검색해보자.
data <- data.frame(subset(data, as.Date(date, '%d/%m/%Y %H:%M:%S', tz = 'UTC') >= '2013-12-01' & as.Date(date, '%d/%m/%Y %H:%M:%S', tz = 'UTC') <= '2013-12-03'), row.names=NULL)
## date count price store
## [1,] 2013-12-01 1 500 강남점
## [2,] 2013-12-02 2 3000 신림점
## [3,] 2013-12-03 3 10000 홍대점
참 쉽죠? ㅋㅋ
'R' 카테고리의 다른 글
R 데이터프레임(DF) Group By Sum (2) | 2013.12.20 |
---|---|
R PDF생성 시 한글폰트 깨짐 문제 (4) | 2013.10.21 |
R을 이용한 중심극한정리 (3) | 2013.08.02 |