3-8) 문자열 처리
stringr 패키지
install.packages("stringr")
library(stringr)
str_replace() : 처음 찾은 값 대체
txt4 <- c("aa.txt", "Aaaa.txt", "ab.txt", "123.txt", "ba123.txt", "abab", "ABAB", "aAbB")
str_replace(txt4, 'a', 'z') # 처음 찾은 a를 z로 대체
str_replace_all() : 모든 값 대체
str_replace_all(txt4, 'a', 'z')
정규 표현식
grep() : 주어진 조건만 골라내는 함수
grep("찾을 내용", data, 옵션)
^ : 시작문자지정
[^] : 제외문자지정
[ ] : 포함하는 값 출력
grep_ex <- c("aaa", "bbb","abab", "baba", "ab123", "ba123", "123ab", "ABAB", "aAbB",
"cad", "dab")
grep("^a", grep_ex) # a로 시작되는 위치 출력
grep("^a", grep_ex, value = T) # a로 시작되는 값 출력
grep("^ab", grep_ex, value = T) # ab로 시작되는 값 출력
grep("^ba", grep_ex, value = T) # ba로 시작되는 값 출력
grep("[ab]", grep_ex, value = T) # a 또는 b를 포함하는 값 출력
grep("^[ab]", grep_ex, value = T) # a 또는 b로 시작되는 값 출력
grep("[^a]", grep_ex, value = T) # a 만으로 구성된 값 제외하고 출력
grep("[^ab]", grep_ex, value = T) # a 또는 b만으로 구성된 값 제외하고 출력
grep("^[^a]", grep_ex, value = T) # a로 시작되는 값 제외하고 출력
grep("^[^ab]", grep_ex, value = T) # a 또는 b로 시작되는 값 제외하고 출력
grep("[0-9]", grep_ex, value = T) # 0~9 숫자가 포함된 값 출력
grep("^[0-9]", grep_ex, value = T) # 0~9 숫자로 시작되는 값 출력
grep("^[^0-9]", grep_ex, value = T) # 0~9 숫자로 시작되는 값 제외하고 출력
data <- c("Game", "GAME", "ggame", "gAME", "Tetris1", "game", "tetris5")
grep("^g+", data, value = T) # ^ 시작, +1회 이상
grep("G+", data, value = T) # G가 최소 1회 나오는 값
grep("ME$", data, value = T) # Me로 끝나는 값
grep("[2-5]", data, value = T) # 2~5 사이 숫자 포함하는 값
grep("[[:digit:]]", data, value = T) # 숫자 포함하는 값
grep("[[:upper:]]", data, value = T) # 대문자 포함하는 값
nchar : 글자 수 체크
nchar_ex1 <- "매일 매일 기다려"
nchar(nchar_ex1)
nchar_ex2 <- c("a.txt", "A.txt", "ab.txt", "123.txt", "b a123.txt")
nchar(nchar_ex2)
paste() : 붙이기
paste(1,2,3)
paste("a", "b", "c")
paste("a", "b", "c", sep='') #공백제외
paste("a", "b", "c", sep='-')
collapse="|": 정규표현식 두번 쓸 때
ptn <- c("^a", "^A")
grep(ptn, grep_ex, value=T) # 정규표현식이 두번 써지면 오류 발생
# 오류 없애기 위해선 paste(정규표현식, collapse="|")
grep(paste(ptn, collapse="|"), grep_ex, value=T)
# = grep("^a|^A", grep_ex, value=T)
substr
substr("8794564312",3,6) #3번째에서 6번째까지 가져오기
jumin <- "900405-1231415"
substr(jumin, 8,8) # 주민 번호에서 성별 번호
strsplit("x") : X 기준으로 분리
tel <- "031)123-4567"
strsplit( tel, ")"
```)