해보記/R

<記> R 데이터 핸들링 (3)

Light Pillar 2019. 12. 16. 10:50

데이터 정렬하기

데이터를 정렬하는 함수는 sort / oder 가 있다. Vector 데이터는 주로 sort( )를, Matrix 데이터는 order( )를 사용한다.

> a <- c(1, 4, 5, 3, 3, 7)
> sort(a)
> order(a)   # 값의 순위값(위치)을 나타낸다
> sort(a, decreasing = T)
> order(a, decreasing = T)

> tmp1 <- data.frame(AA = c("A", "A", "B", "C", "D"), BB = c(5, 3, 6, 1, 2))
# 컬럼 BB에 대하여 오름차순 정렬
> tmp1[order(tmp1$BB), ]
# 컬럼 BB에 대하여 내림차순 정렬
> tmp1[order(tmp1$BB, decreasing = T), ]

 

문자열 처리

문자열 처리에는 paste / substring / strsplit / grep / sub / toupper / tolower 등의 함수가 사용된다.

 

paste( )

# 문자열을 합친다.
> paste("Hi", " R ", "!!", sep = "")
> paste("Hi", " R ", "!!", sep = "-")

substring( )

# 문자열을 사용자 정의에 따라 자른다.
> a <- "apple"
> substring(a, 1, 2)  # a의 첫 번쨰 자리부터 두 번째 인덱스까지

strsplit( )

# 문장을 구분자 단위로 나눌 떄 사용한다.
> strsplit("A text I want to display with space", " ")   # 공백을 단위로 나눈다.

grep( )

# 문자열 또는 단어에서 특정 단어를 찾기위해 사용한다.
> text <- c("arm", "foot", "left", "right", "example", "foobar")
> grep("foo", text)

sub( )

# 문자 뒤의 공백 제거
> str <- "test  "
> sub(" +$", "", str)

toupper( ) / tolower( )

# 대문자 또는 소문자로 바꾸기
> aa <- "pineapple"
> toupper(aa)
> bb <- "PINEAPPLE"
> tolower(bb)

 

날짜변환 및 처리

현재 날짜정보 표출

# 요일 / 월 / 일 / 시 / 분 / 초 / 년도
> date()
# 년 / 월 / 일 / 시 / 분 / 초
> Sys.time()
# 년 / 월 / 일
> Sys.Date()

weekdays( ) / months( )

# 요일 추출
> weekdays(Sys.Date())
> weekdays(seq(Sys.Date(), length.out = 10, by = "1 days"))
# 월 추출
> months(Sys.Date())

# 문자열 날짜형태로 변환
> as.Date("20191215", "%Y%m%d")
# 문자열 날짜형태로 변환 후 10일 추가하여 결과 출력
> as.Date("20191215", "%Y%m%d") + 10
# 분단위 값의 차이값 출력
> z <- as.difftime(c(0, 30, 60), units = "mins")
# 분단위 차이값 초단위로 출력
> as.numeric(z, units = "secs")
# 분단위 차이값 시간단위로 출력
> as.numeric(z, units = "hours")
> format(z)

'해보記 > R' 카테고리의 다른 글

<記> R 함수 - 문자형  (0) 2019.12.17
<記> R 함수 - 데이터 요약, 대푯값, 정렬  (0) 2019.12.17
<記> R 데이터 핸들링 (2)  (0) 2019.12.13
<記> R 데이터 핸들링 (1)  (0) 2019.12.10
<記> R 연산자  (0) 2019.12.06