20180131damlbmp_zone.csv
다운로드

데이터 파일을 첨부했으니 다운로드 받아서 테스트 해 보기 바란다. 내 컴퓨터의 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

 

데이터과 관련된 명령은 꼭 알아야 하는 게 정말 많다. 한꺼번에 다 쓰기엔 너무 기니까 다음에 이어 살펴보기로 한다.

Posted by jujaeuk
,