본문 바로가기

R

R 데이터프레임(DF) 조건 검색

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