1. NA : 잘못된 값이 들어 올 경우 (Not Applicable , Not Available)


> cat(1,NA,2) 

1 NA 2 


> sum(1,NA,2)  

[1] NA





2. NULL : 값이 없을 경우 


> cat(1,NULL,2)  

1 2>


> sum(1,NULL,2) 

[1] 3





밑에 dropbox에 있는 자료를 다운 받은 후, C에 새 폴더(r_temp)를 만든다.


> setwd("c:\\r_temp") 

> txt1 <- read.csv("factor_test.txt") // txt1에 연결한다


> factor1 <- factor(txt1$blood)

> factor1

 [1] O  A  O  B  AB A  B  O  B  B 

Levels: A AB B O


> summary(factor1) //각 항목별 레벨과 카운트 해줌

 A AB  B  O 

 2  1  4  3 


> sex1 <- factor(txt1$sex)

> summary(sex1)

남 여 

 7  3





날짜형 데이터


> Sys.Date()  

[1] "2014-11-13"


> Sys.time()  

[1] "2014-11-13 21:18:19 KST"


> date( )  

[1] "Thu Nov 13 21:19:58 2014"




문자를 날짜로 변환하기


> as.Date('2014-11-01')  //""도 사용가능

[1] "2014-11-01“


>as.Date('2014-11-01')+7 //7일 후 날짜 출력


> as.Date("2014/11/01") 

[1] "2014-11-01"


> as.Date("01-11-2014",format="%d-%m-%Y")  

[1] "2014-11-01"




> as.Date("2014년 11월 1일",format="%Y년 %m월  %d일")

[1] "2014-11-01"


> as.Date("01112014",format="%d%m%Y") 

[1] "2014-11-01"


> as.Date("011114",format="%d%m%y")  

[1] "2014-11-01"




기준 일자를 주고  몇 일 후 찾기


> as.Date(10,origin="2014-11-10")  //주어진 날짜기준으로 10일 후의 날짜

[1] "2014-11-20"


> as.Date(-10,origin="2014-11-10")  //주어진 날짜 기준으로 10일 이전 날짜

[1] "2014-10-31"




날짜연산


> "2014-11-30" - "2014-11-01"  //문자형(날짜형 아님)


> class("2014-11-30") 

[1] "character"


> as.Date("2014-11-30") - as.Date("2014-11-01") //날짜로 변경

Time difference of 29 days


> as.Date("2014-11-01") + 5    

[1] "2014-11-06"




POSIXlt 

날짜를 년,월,일 로 표시하는 리스트형이라는 클래스


POSIXct 

날짜는 연속적인 데이터로 인식해서 1970년을 기준으로 초 단위로 계산

R 고급과정에서 회귀분석 등을 할 때 주로 많이 사용




> as.Date("2014-11-01 20:00:00") - as.Date("2014-11-01 18:30")

Time difference of 0 days


> as.POSIXct("2014-11-01 20:00:00") - as.POSIXct("2014-11-01 18:30:30")

Time difference of 1.491667 hours




lubridate 패키지로 날짜와 시간 제어하기


> install.packages("lubridate")

> library(lubridate)

> date <- now( ) # 현재 날짜와 시간 넣기


> date

[1] "2014-11-24 20:15:11 KST"


> year(date) 

[1] 2014


> month(date,label=F) 

[1] 11


> month(date,label=T)

[1] 11

12 Levels: Jan < Feb < Mar < Apr < May < Jun < Jul < Aug < Sep < ... < Dec


> day(date)  

[1] 24


> wday(date,label=T) 

[1] 월

Levels: 일 < 월 < 화 < 수 < 목 < 금 < 토


> wday(date,label=F) //요일을 숫자로 출력 (일요일=1)

[1] 2


> date <- date - days(2) //2일 전 날짜 출력하기

> date

[1] "2014-11-22 20:15:11 KST"


> month(date) <- 2  //2월로 설정하기

> date

[1] "2014-02-22 20:15:11 KST"


> date+years(1)    //1 년 추가하기

[1] "2015-11-25 15:02:01 KST


> date+months(1) //1 개월 추가하기

[1] "2014-12-25 15:02:01 KST"


> date+hours(1)    //1 시간 추가하기

[1] "2014-11-25 16:02:01 KST"  


> date+minutes(1)  //1 분 추가하기

[1] "2014-11-25 15:03:01 KST"  


> date+seconds(1)   //1 초 추가하기

[1] "2014-11-25 15:02:02 KST"  


> date <- hm("22:30") ; date //시간 분 지정하기

[1] "22H 30M 0S"


> date <- hms("22:30:15") ; date //시간 분 초 지정하기

 [1] "22H 30M 15S"






출처

더알음 네이버카페 : http://cafe.naver.com/theareum

R라뷰 개정판 실습데이터 모음 :  https://www.dropbox.com/s/16ytsq4q3rdaro4/%EB%8D%94%EB%A7%8E%EC%9D%B4_R%EB%9D%BC%EB%B7%B0_%EA%B0%9C%EC%A0%95%ED%8C%90%EC%9A%A9_%EC%8B%A4%EC%8A%B5%EC%9A%A9_%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%AA%A8%EC%9D%8C.zip?dl=0

+ Recent posts