Paste 함수

R에는 여러 문자열을 연결시킬 수 있는 함수로 paste()가 있다. paste() 함수는 기본적으로 다음과 같이 쓸 수 있다.

  • paste(c("char1", "char2", ...), sep = "")
    • sep 안에는 단어 사이에 무엇이 구분자가 될지를 지정한다.
    • sep가 지정되지 않는다면 기본적으로 공백이 구분자가 된다.
  • paste0 함수는 문자 간 공백을 두지 않는다.

  • 아래에 예제에서 확인할 수 있듯, 둘 이상의 벡터를 연결시킨다면 기본적으로 벡터의 원소 대 원소(element-wise)를 기준으로 하여 문자열이 연결된다.

paste(c("Statistics"), "R")
## [1] "Statistics R"
paste(c("a", "b", "c"), c("x", "y", "z")) # element-wise 
## [1] "a x" "b y" "c z"
paste(c("a", "b", "c"), c("x", "y", "z"), 100, sep = " or ")
## [1] "a or x or 100" "b or y or 100" "c or z or 100"
a <- c("Hello", "World")
b <- c(",", "!")
paste0(a, b) 
## [1] "Hello," "World!"


  • 서로 다른 길이의 벡터를 연결시킨다면, 길이가 짧은 벡터가 긴 벡터를 채우게 된다. 아래의 예제에서 확인해 보자.
  • collpase = "" argument는 합쳐진 벡터 문자열들 사이의 구분자를 지정하며, paste()로 생성된 벡터의 길이를 1로 만들어 준다. 예컨대 paste(c("a", "b"), c("x", "y"), sep = " and ")는 두 개의 문자열 "a and b", "b and y"를 출력하는데, paste(c("a", "b"), c("x", "y"), sep = " and ", collapse = " ")는 하나의 문자열 "a and x b and y"을 출력해 준다. 즉, paste()의 반환값이 문자열 한 개가 된다. 아래의 예제에서 확인해 보자.
paste(c("a", "b"), c("x", "y"), sep = " and ")
## [1] "a and x" "b and y"
length(paste(c("a", "b"), c("x", "y"), sep = " and "))
## [1] 2
paste(c("a", "b"), c("x", "y"), sep = " and ", collapse = " ")
## [1] "a and x b and y"
length(paste(c("a", "b"), c("x", "y"), sep = " and ", collapse = " "))
## [1] 1

'기타 공부' 카테고리의 다른 글

[R] 조건문 (if)  (1) 2018.06.05
[R] 자료 객체 (4): 데이터 프레임, 리스트  (0) 2018.06.04
[R] 함수 만들기 기초  (0) 2018.06.03
[R] 자료 객체 (3): 배열 (array)  (0) 2018.06.03
[R] identical, all equal 함수의 차이  (0) 2018.05.27