본문 바로가기

R

R MANUALS : ② 숫자와 벡터 → 2.6 문자형 벡터

SMALL

본 글은 https://cran.r-project.org/doc/manuals/r-release/R-intro.html내용을 기반으로 작성되었습니다.

Copyright © 1999–2021 R Core Team

 

- 문자형 벡터 또한 R에서 많이 다루어지는 벡터 유형임

- 문자형 벡터 값을 입력하기 위해서는 따옴표(" ")를 사용하여 입력해야 함

- 작은따옴표 (' ')도 상관없으나, 화면상에 출력될 때에는 항상 큰 따옴표(" ")로 출력됨

> x <- c("큰따옴표", '작은따옴표', "큰따옴표를 많이 써요")
> x
[1] "큰따옴표"             "작은따옴표"           "큰따옴표를 많이 써요"

 

 

- paste() : 문자열끼리 합치는 함수

- paste() 함수를 통해 문자열을 합칠 때 중간에 공백을 포함하여 합치게 됨

> x <- "안녕하세요."
> x
[1] "안녕하세요."

> y <- "호치리입니다."
> y
[1] "호치리입니다."

> paste(x,y)
[1] "안녕하세요. 호치리입니다."

> x <- c("가", "나", "다")
> x
[1] "가" "나" "다"

> y <- c("a", "b", "c")
> y
[1] "a" "b" "c"

> paste(x,y)
[1] "가 a" "나 b" "다 c"

 

 

- paste() 함수에는 숨겨진 인수가 하나 있음

- sep라는 인수인데, 합칠 문자들 사이에 어떤 구분자를 넣을것인지 정하는 인수임

- sep=""이라고 입력하면 아무 구분자 없이, sep="-"를 넣으면 -문자 등 다양한 구분자를 삽입할 수 있음

- sep인수를 입력해주지 않으면 기본적으로 공백 1개를 자동으로 넣음

> x <- c("가", "나", "다")
> x
[1] "가" "나" "다"

> y <- c("a", "b", "c")
> y
[1] "a" "b" "c"

> paste(x,y)
[1] "가 a" "나 b" "다 c"

> paste(x, y, sep="")
[1] "가a" "나b" "다c"

> paste(x, y, sep="-")
[1] "가-a" "나-b" "다-c"

 

 

- paste() 함수는 문자값과 숫자값을 합칠 수도 있음

- 합칠경우 합쳐진 값은 문자값으로 인식됨

- 합칠 두개의 벡터 길이가 다를 경우, 숫자형벡터 연산과 같이 요소대 요소로 적용하게 됨

- 다시말해, 길이가 짧은 벡터가 여러번 반복 적용되면서 paste기능이 실행됨

> paste(c("가", "나", "다"), 1:8, sep="")
[1] "가1" "나2" "다3" "가4" "나5" "다6" "가7" "나8"

 

 

- 추가적으로 따옴표 안에서 | (역슬래시)기호를 쓰면 문자가 아닌 다른 기능을 사용할 수 있음

   (키보드에 \라고 표현되어 있는 버튼임, 같은 버튼이지만 한글폰트에서는 \, 영어폰트에서는 | 가 나옴, 뭐든 상관없음)

- 본래는 따옴표 안에 있는 것은 모두 문자로 취급되나 | 기호를 사용하면 문자가 아닌 기능으로 인식함

- 따옴표에서 탈출한다고 해서 이스케이프(escape)문자, 탈출문자라고 부름

- 화면상에 출력될 때는 따옴표 안에서 출력되므로 효과를 확인할 수 없으나 문자열 자체만 출력해주는 cat()함수를 쓰면 효과를 확인할 수 있다. 

> y <- c("안녕하세요 \n 호치리입니다.")
> y
[1] "안녕하세요 \n 호치리입니다."

> print(y)                       # print()는 따옴표까지 포함해서 출력하는 함수
[1] "안녕하세요 \n 호치리입니다."

> cat(y)                         # cat()은 따옴표를 빼고 온전한 문자열만 포함해서 출력하는 함수
안녕하세요                        # \n 이라는 개행문자(엔터 기능)이 적용되서 출력됨
 호치리입니다.

 

[이스케이프 문자 종류]

| n  : newline (새로운줄, 엔터기능)

| r   : carriage return (커서를 맨앞으로 이동해서 다시 쓰기. 잘 사용안함)

| t   : tab (탭 공백)

| b  : backspace (앞문자 하나 지우기)

| |   : 백슬래시 문자를 넣고 싶을때 (백슬래시만 넣으면 기능이 발동되니까 두번써서 문자로 인식하게 만드는 것임)

| "   : 따옴표 안에 큰따옴표 넣고 싶을때 (따옴표 안에서 그냥 쓰면 문자열이 끝나버려서 이런 추가기능이 필요)

| '   : 따옴표 안에 작은따옴표 넣고 싶을때

 

LIST