본문 바로가기
자기계발/R기초

[R 기초] R 기초 핵심 정리 4탄 (자료의 입출력)

by 딩동동 2023. 1. 24.
R 기초 핵심 정리 4탄


  • 내장함수 read.table( ) 을 사용하여 텍스트 파일을 읽을 수 있다.
  • url 함수를 사용하여 인터넷 주소를 설정하면 인터넷의 파일을 바로 읽을 수 있다.
  • file.choose( ) 를 사용하여 윈도우에 내장된 파일 탐색기를 열어서 파일을 선택하거나 저장할 수 있다.
  • write.table( ) 함수를 사용하여 텍스트 파일로 저장할 수 있다.
  • R에서 엑셀 파일을 다루기 위해서는 패키지를 사용해야 한다.
  • readxl 패키지를 설치하면 엑셀 파일을 read_excel 함수를 사용하여 읽을 수 있다.
  • readxl 패키지는 엑셀로 저장하는 함수는 제공하지 않는다.
  • xlsx 패키지를 사용하면 엑셀 파일 읽기는 read.xlsx 함수로 엑셀 파일 쓰기는 write.xlsx 함수로 할 수 있다. 
  • 문자열에 포함된 문자의 개수는 nchar 함수를 사용하여 확인 할 수 있다.
  • 문자열 분리는 strsplit 함수를 사용한다.
  • 문자열 합치기는 paste 함수를 사용한다.
  • 문자열을 여러 번 반복하려면 rep 함수를 사용한다.
  • 문자열의 일부만 가져오려면 substr 함수를 사용한다.
  • 특정한 문자열이 몇번째 문자인지 확인하려면 regexpr 또는 gregexpr 함수를 사용한다.
  • 특정 패턴이 포함된 문자열인지 확인하는 것은 grep 또는 grepl 함수를 사용한다.
  • 특정 문자열을 다른 문자열로 바꾸는 것은 sub 또는 gsub 함수를 사용한다.
  • 문자열의 비교를 편하게 하기 위해 정규식(regular expression)을 사용한다.

 

명령어 줄 입력받기

 

대화형 프로그램을 작성하는 경우

사용자가 명령어 줄에 자료를 입력하고 입력받은 값을 프로그램이 처리하는 방식이 사용됩니다.

R프로그램에서는 "readline" 함수가 제공됩니다.

 

readline(prompt=" ")

 

텍스트 파일 불러오기

 

내장함수 read.table( ) 을 사용하여 텍스트 파일을 읽을 수 있습니다.

웹사이트 등에 있는 파일을 직접 읽으려면 url 함수를 사용하여 인터넷 주소를 설정하면

인터넷의 파일을 바로 읽을 수 있습니다.

 

read.table(file, header=FALSE, sep=" ", row.names, col.names, nrow=-1 , skip=0)

# file : 읽을 파일의 경로를 설정
# header : 파일의 첫줄이 변수이름인 경우에는 T
# sep : 각각의 값을 구분하기 위해 사용된 구분자 (기본값은 " ")
# row.names / col.names : 행과 열의 이름을 설정
# nrow : 각 자료에서 읽어들일 행의 개수를 설정
# skip : 파일의 첫 부분의 읽어 들이지 않을 행의 개수를 설정

 

윈도우에 내장된 파일 탐색기를 열어서 파일을 선택하려면

read.table(file.choose( )) 를 사용하여 파일을 불러올 수 있습니다.

 

 

텍스트 파일 저장하기

 

write.table( ) 함수를 사용하여 텍스트 파일로 저장할 수 있습니다.

 

write.table(x,file=" ", append=FALSE, quote=TRUE, sep=" ", row.names=TRUE, col.names=TRUE)

# file : 저정할 텍스트 파일 이름을 설정
# append : 기본값은 FALSE. 기존의 파일을 추가할 것인지 설정.
                  같은 이름의 파일이 있을 경우 이전 파일의 내용이 사라지므로 주의
# quote : 기본값은 TRUE. 자료의 값이 문자열일 때 출력 파일에 따옴표를 사용할 것인지 설정
# row.names/col.names : 행과 열의 이름을 출력할 것인지 설정.
                                         만일 특정한 값으로 행/열이름을 설정하고자 하면 T/F대신 문자열을 설정

 

마찬가지로 file.choose( ) 함수를 사용하여 파일 탐색기로 파일 위치와 파일 이름을 설정할 수 있습니다.

 

엑셀 파일 불러오기

 

R에서 엑셀 파일을 다루기 위해서는 패키지를 사용해야 합니다.

 

readxl 패키지를 설치하면 엑셀 파일을 read_excel 함수를 사용하여 읽을 수 있습니다.

그러나 readxl 패키지는 엑셀로 저장하는 함수는 제공하지 않습니다.

 

read_excel(path,sheet=NULL,range=NULL, col_names=TRUE, col_types=NULL, trim_ws=TRUE)

# col_types : 읽어올 자료의 형식을 설정. "skip","guess","logical","numeric","date","text","list" 중 한 값을 사용
                      "skip" 은 해당 열을 읽지 않는다는 의미이며, "guess"는 각 열의 형식을 R이 판단하도록 함
# trim_ws : 문자열 앞뒤의 빈칸을 삭제할지 설정

 

또 다른 패키지인 xlsx 패키지를 사용하면 엑셀파일을 읽거나 저장할 수 있습니다.

xlsx 패키지를 사용하려면 Java Runtime Environment(JRE)를 요구하므로 JRE를 먼저 설치해야 합니다.

 

엑셀 파일 읽기는 read.xlsx 함수로

엑셀 파일 쓰기는 write.xlsx 함수로 할 수 있습니다. 

 

문자열 합치기와 분리하기

 

문자열에 포함된 문자의 개수는 nchar 함수

문자열 분리는 strsplit 함수

문자열 합치기는 paste 함수

문자열을 여러 번 반복하려면 rep 함수를 사용합니다.

 

문자열 비교와 찾기

 

문자열의 일부만 가져오려면 substr 함수를 사용합니다.

 

특정한 문자열이 몇번째 문자인지 확인하려면

regexpr 또는 gregexpr 함수를 사용합니다.

regexpr('pattern', x, fixed=FALSE)
gregexpr('pattern', x, fixed=FALSE)

# x에 패턴이 들어간 위치를 반환받음
# regexpr은 처음 패턴이 나온 위치를
# gregexpr은 패턴이 나온 모든 위치를 반환
# fixed : 기본값은 FALSE로 정규식. 패턴에 설정한 값이 정규식인지 일반 문자열인지 설정

 

특정 패턴이 포함된 문자열인지 확인하는 것은

grep 또는 grepl 함수를 사용합니다.

 

grep(pattern, x, ...)
grepl(pattern, x, ...)

# grep : x에 패턴이 있는지 확인하여 패턴이 포함된 인텍스를 반환
# grepl : x에 패턴이 있으면 TRUE, 없으면 FALSE를 반환

 

특정 문자열을 다른 문자열로 바꾸는 것은

sub 또는 gsub 함수를 사용합니다.

 

sub('pattern', replacement, input)
gsub('pattern', replacement, input)

문자열 input에 있는 pattern을 replacement로 바꾸는 것

# sub : 처음 나온 패턴 한번만 바꾸기
# gsub : 모든 패턴에서 바꾸기 

 

정규식

 

문자열 비교를 편하게 하기 위해 정규식을 사용합니다.

 

\\ 특수문자를 의미

 

 

[ ] 집합을 의미
- 특정한 시작부터 마지막을 의미

 

 

 

나도 할 수 있다 R !

댓글