데이터 파일을 첨부했으니 다운로드 받아서 테스트 해 보기 바란다. 내 컴퓨터의 R 작업 디렉토리에 풀어 놓고 다음 명령으로 데이터를 불러 보자.
> ep<-read.csv("20180131damlbmp_zone.csv")
불러들인 데이터는 ep란 이름의 데이터셋에 저장했다. csv 파일의 첫 행을 변수 이름으로 자동 인식했다. 변수 이름을 따로 보고 싶으면 names() 함수를 쓴다.
> names(ep)
[1] "Time.Stamp" "Name"
[3] "PTID" "LBMP....MWHr."
[5] "Marginal.Cost.Losses....MWHr." "Marginal.Cost.Congestion....MWHr."
여섯 개의 변수로 구성되어 있는 것을 알 수 있는데, 이름을 보면 통계 분석을 위한 변수명이라기 보다는 문서에 있는 표의 첫 줄 같다. 풀 네임으로 되어 있으니까. 간결한 변수명으로 일단 바꾸고 싶으면 다음과 같이 한다.
c("time_stamp","name","ptid","lbmp","mcl","mcc")->names(ep)
> names(ep)
[1] "time_stamp" "name" "ptid" "lbmp" "mcl" "mcc"
데이터 내용은 굳이 설명할 필요가 없을 것 같다. 만약 이 중에서 시간(time_stamp), 지역 이름(name), 지역 아이디(ptid), 가격(lbmp) 네 개의 변수만 가진 새로운 데이터셋 epa를 만들고 싶다면 다음과 같이 만들면 된다. 데이터 이름과 변수 이름을 문자열로 어떻게 처리하는지 주의해서 보기 바란다.
> epa<-ep[c("time_stamp","name","ptid","lbmp")]
> head(epa)
time_stamp name ptid lbmp
1 01/31/2018 00:00 CAPITL 61757 45.49
2 01/31/2018 00:00 CENTRL 61754 34.40
3 01/31/2018 00:00 DUNWOD 61760 43.76
4 01/31/2018 00:00 GENESE 61753 33.40
5 01/31/2018 00:00 H Q 61844 30.45
6 01/31/2018 00:00 HUD VL 61758 43.54
원하는 변수만을 뽑아 새로운 데이터를 만들 수 있다면, 원하는 행만을 뽑아 새로운 변수를 만들 수도 있을 것이다. 이때는 subset() 함수를 사용한다. 만약 지역 이름이 'CAPITL' 또는 'GENESE'인 행만 선택해 새로운 데이터셋 epb를 만들고 싶다면,
> epb<-subset(epa,name==c("CAPITL","GENESE"))
> head(epb)
time_stamp name ptid lbmp
1 01/31/2018 00:00 CAPITL 61757 45.49
4 01/31/2018 00:00 GENESE 61753 33.40
31 01/31/2018 02:00 CAPITL 61757 36.80
34 01/31/2018 02:00 GENESE 61753 32.79
61 01/31/2018 04:00 CAPITL 61757 37.46
64 01/31/2018 04:00 GENESE 61753 34.32
결과를 보면 어떻게 된 건지 금방 알 수 있을 것이다. 수치 데이터인 경우, 수학적 조건을 건 부분집합을 만들 수도 있다. 이 때는 which() 함수를 기억하자. 만약 epa에서 변수 lbmp가 35보다 큰 행만 골라서 새로운 데이터셋 epc를 만들고 싶으면,
> epc<-epa[which(epa$lbmp>35),]
> head(lbmp0131c)
time_stamp name ptid lbmp
1 01/31/2018 00:00 CAPITL 61757 45.49
3 01/31/2018 00:00 DUNWOD 61760 43.76
6 01/31/2018 00:00 HUD VL 61758 43.54
7 01/31/2018 00:00 LONGIL 61762 55.39
8 01/31/2018 00:00 MHK VL 61756 35.07
9 01/31/2018 00:00 MILLWD 61759 43.87
데이터과 관련된 명령은 꼭 알아야 하는 게 정말 많다. 한꺼번에 다 쓰기엔 너무 기니까 다음에 이어 살펴보기로 한다.
'R' 카테고리의 다른 글
R 데이터 재구조화 - cast() (0) | 2018.03.30 |
---|---|
R 시계열 데이터 변환 aggregate() (0) | 2018.03.22 |
R에서 데이터 다루기 (0) | 2018.03.13 |
R 막대그래프 barplot(), ggplot() (0) | 2018.03.09 |
R에서 오늘 날짜 또는 지금 시간 알기 Sys.Date(), Sys.time() (0) | 2018.03.07 |