[r] 두 줄을 어떻게 연결할 수 있습니까?

두 값을 어떻게 연결 (병합, 결합) 할 수 있습니까? 예를 들어

tmp = cbind("GAD", "AB")
tmp
#      [,1]  [,2]
# [1,] "GAD" "AB"

내 목표는 “tmp”의 두 값을 하나의 문자열로 연결하는 것입니다.

tmp_new = "GAD,AB"

어떤 기능이 나를 위해 이것을 할 수 있습니까?



답변

paste()

갈 길입니다. 이전 포스터에서 지적했듯이 붙여 넣기는 두 가지 작업을 수행 할 수 있습니다.

값을 하나의 “문자열”로 연결

> paste("Hello", "world", sep=" ")
[1] "Hello world"

여기서 인수 sep는 문자 벡터를 연결하거나 축소하기 위해 인수 사이에 사용될 문자를 지정합니다.

> x <- c("Hello", "World")
> x
[1] "Hello" "World"
> paste(x, collapse="--")
[1] "Hello--World"

여기서 인수 collapse는 축소 할 벡터 요소 사이에 사용할 문자를 지정합니다.

두 가지를 결합 할 수도 있습니다.

> paste(x, "and some more", sep="|-|", collapse="--")
[1] "Hello|-|and some more--World|-|and some more"

도움이 되었기를 바랍니다.


답변

help.search() 편리한 기능입니다. 예 :

> help.search("concatenate")

당신을 이끌 것 paste()입니다.


답변

첫 번째 비 paste()응답에 대해서는 stringr::str_c()(그리고 toString()아래) 를 볼 수 있습니다 . 이 질문만큼 오래되지 않았으므로 그것이 존재한다는 것을 언급하는 것이 유용하다고 생각합니다.

보시다시피 사용이 매우 간단합니다.

tmp <- cbind("GAD", "AB")
library(stringr)
str_c(tmp, collapse = ",")
# [1] "GAD,AB"

문서 파일 설명에서이 문제에 잘 맞습니다.

str_c의 작동 방식을 이해하려면 문자열 매트릭스를 작성한다고 상상해야합니다. 각 입력 인수는 열을 형성하며 일반적인 재생 규칙을 사용하여 가장 긴 인수의 길이로 확장됩니다. sep 문자열은 각 열 사이에 삽입됩니다. collapse가 NULL이면 각 행이 단일 문자열로 축소됩니다. NULL이 아닌 경우 해당 문자열이 각 행의 끝에 삽입되고 전체 행렬이 단일 문자열로 축소됩니다.

2016 년 4 월 13 일 추가 : 원하는 출력 (추가 공간)과 정확히 동일하지는 않지만 아무도 언급하지 않았습니다. toString()버전 기본적 paste()으로 collapse = ", "당신이 할 수 있도록, 하드 코딩

toString(tmp)
# [1] "GAD, AB"


답변

다른 사람들이 지적했듯이 paste()갈 길입니다. 그러나 paste(str1, str2, str3, sep='')기본이 아닌 구분 기호를 원할 때마다 입력하는 것이 번거로울 수 있습니다.

인생을 훨씬 간단하게 만드는 래퍼 함수를 ​​매우 쉽게 만들 수 있습니다. 예를 들어 구분자가없는 문자열을 연결하는 경우 다음을 수행 할 수 있습니다.

p <- function(..., sep='') {
    paste(..., sep=sep, collapse=sep)
}

또는 벡터에서 문자열을 자주 결합하려는 경우 (예 implode(): PHP) :

implode <- function(..., sep='') {
     paste(..., collapse=sep)
}

이렇게 할 수 있습니다 :

p('a', 'b', 'c')
#[1] "abc"
vec <- c('a', 'b', 'c')
implode(vec)
#[1] "abc"
implode(vec, sep=', ')
#[1] "a, b, c"

또한 내장과가 paste0있으며 my와 동일한 기능을 수행 implode하지만 사용자 정의 구분 기호를 허용하지 않습니다. 보다 약간 더 효율적 paste()입니다.


답변

> tmp = paste("GAD", "AB", sep = ",")
> tmp
[1] "GAD,AB"

나는 R 연결 문자열 을 검색하여 Google에서 이것을 찾았습니다 : http://stat.ethz.ch/R-manual/R-patched/library/base/html/paste.html


답변

또는 목표가 파일 또는 stdout으로 직접 출력하는 경우 다음을 사용할 수 있습니다 cat.

cat(s1, s2, sep=", ")


답변

또 다른 방법:

sprintf("%s you can add other static strings here %s",string1,string2)

때로는 기능보다 유용 paste()합니다. %s주관적인 문자열이 포함될 장소를 나타냅니다.

경로를 만들려고 할 때 유용합니다.

sprintf("/%s", paste("this", "is", "a", "path", sep="/"))

산출

/this/is/a/path