응_비 2022. 6. 26. 22:15

1. 문자열을 다루는 함수들

(1) paste 함수 : 인수들을 하나의 문자열로 만드는 함수

(2) paste0 (vector1, vector2 ..., collapse = Null) : 공백없이 붙이기

 

(3) n char : 문자열의 갯수를 세는 함수

(4) sub str : 문자열에서 부분을 추출하는 함수

(5) str trim : 문자열을 자르는 함수

(6) str split : 문자열을 주어진 값으로 구분하여 자르는 함수

(7) Extended regular expression (확장 정규 표현식) 

 

(+) 리스트를 벡터로 변환하기 - unlist()

: 기본적으로는 unlist() 함수를 사용해서 리스트를 벡터로 쪼개 버릴 수 있다.

x<-c(as="asfef", qu="qwerty",
     "yuiop[", "b", "stuff.blah.yech")
strsplit(x, "e") #문자열을 주어진 값으로 구분하여 자르는 함수
strsplit(x, "[a-f]")
strsplit(x, "[aleu][ab]")
unlist(strsplit("a.b.c", ".")) #리스트를 벡터로 변환하기 - unlist()
unlist(strsplit("a.b.c", "[.]"))
unlist(strsplit("a.b.c", ".",  fixed=TRUE))

 

2. 현재 작업 폴더 정보 관련 함수들

(1) get wd() : 현재 작업 폴더를 반환

(2) set wd (path) : 새로운 작업 폴더를 지정 / (폴더 구분" / " 사용)

(3) dir : 현재 작업 폴더 내의 파일이름을 문자열 벡터로 반환 

(4) dir.create() 함수 : 디렉토리 (폴더) 생성 함수

(+) unlink(path) : 폴더를 지울때

(5) g rep (정규표현식, 탐색대상, value = F)

: 탐색 대상 내에서 정규표현식에 매치되는 값들의 위치를 반환

> value = T이면 실제값을 반환

(6) g sup (정규표현식, 바꿀문자열, 대상)

: 대상 내에 정규표현식에 해당하는 문자열들을 바꿀 문자열로 치환

> gsup('[ . ]exe', '.csv', t2] ----> [".exe" + 문자] 값을 리턴 

 

getwd() #현재 작업 폴더를 반환
setwd('d:/') #새로운 작업 폴더를 지정 / (폴더 구분" / " 사용)

dir.create('example2') #디렉토리 (폴더) 생성 함수
setwd("example2") #새로운 작업 폴더를 지정 / (폴더 구분" / " 사용)
getwed() #현재 작업 폴더를 반환
dir('../') #현재 작업 폴더 내의 파일이름을 문자열 벡터로 반환 
dir.create('./test') #디렉토리 (폴더) 생성 함수
dir('c:/windows') #현재 작업 폴더 내의 파일이름을 문자열 벡터로 반환 

unlink("test", recursive = T); #폴더를 지울때
dir() #현재 작업 폴더 내의 파일이름을 문자열 벡터로 반환 
?unlink #폴더를 지울때, 도움말

 

 

test = dir("C:/windows") ##현재 작업 폴더 내의 파일이름을 문자열 벡터로 반환 
test
t1 = grep("^[A-Ca-c][a-z]", test) #정규표현식에 매치되는 값들의 위치를 반환
t1

t2=grep("[.]exe$", test, value=T)
length(colors())
colors()[1:5]
grep("red", colors(), value=T)
x11()
barplot(rep(3, length(cn), col=cn))
cn
x = c("010-31233-2134", "032-860-7642")
grep("010-[0-9]{3, 4}-[0-9]{4}", x) #정규표현식에 매치되는 값들의 위치를 반환

 

 

setwd('d:/example2') #새로운 작업 폴더를 지정 / (폴더 구분" / " 사용)
for(i in 1:20)
{
  write.table(1:10, file=paste0('data_', i, '.txt'))
}
fname = dir(); fname
fname2 = grep('data_[0-9][.]txt', fname, value=T); fname2
fname3 = paste0(substr(fname2, 1, 5), "0",
                substr(fname2, 6, nchar(fname2))); fname3
file.rename(fname2, fname3)
cbind(fname2, fname3) #행을 기준으로 열을 덧붙임
?file.rename
dir() #현재 작업 폴더 내의 파일이름을 문자열 벡터로 반환