문자 유형의 벡터가있는 경우 문자열에 값을 연결하려면 어떻게해야합니까? 여기에 내가) 붙여 넣기 (와 그것을 할 것입니다 방법은 다음과 같습니다문자열/문자 벡터 연결
sdata = c('a', 'b', 'c')
paste(sdata[1], sdata[2], sdata[3], sep ='')
는 "abc"
를 산출.
물론, 내가 sdata의 길이를 알고있는 경우에만 작동합니다. 붙여 넣기 함수 내에서 빈 붕괴 인수를 사용
문자 유형의 벡터가있는 경우 문자열에 값을 연결하려면 어떻게해야합니까? 여기에 내가) 붙여 넣기 (와 그것을 할 것입니다 방법은 다음과 같습니다문자열/문자 벡터 연결
sdata = c('a', 'b', 'c')
paste(sdata[1], sdata[2], sdata[3], sep ='')
는 "abc"
를 산출.
물론, 내가 sdata의 길이를 알고있는 경우에만 작동합니다. 붙여 넣기 함수 내에서 빈 붕괴 인수를 사용
매트의 대답
paste(sdata, collapse = '')
덕분에 확실히 정답이다.
do.call(paste, c(as.list(sdata), sep = ""))
실제로 거기에서 apply() 문을 사용할 수있었습니다. 만약 내가 당신을 투표 할거야;) –
'collapse' 매개 변수가 존재하지 않는다면 이것은 실제로 가장 우아한 해결책이 될 것입니다. 그래서 당신이 최근에 실제로 매우 비슷한 것을해야한다면 코미디 릴리프가별로 없습니다 :) –
sdata
의 경우 :
gsub(", ","",toString(sdata))
정수의 벡터를 들면 : 그러나, 여기에 코믹 릴리프 목적을위한 대체 솔루션입니다
gsub(", ","",toString(c(1:10)))
이것은 위험한 답변입니다 - 벡터 요소에 콤마 공간 시퀀스가 있으면이 대답으로 제거됩니다. – C8H10N4O2
매트 터너의 대답은 확실히 정답이다. 그러나 켄 윌리엄스 '대답의 정신, 당신은 할 수 :
stri_paste(letters, collapse='')
## [1] "abcdefghijklmnopqrstuvwxyz"
그리고 몇 가지 벤치 마크 : 당신은 stringi
이 같은 패키지에서 collapse
매개 변수 stri_paste
기능을 사용할 수 있습니다
capture.output(cat(sdata, sep=""))
require(microbenchmark)
test <- stri_rand_lipsum(100)
microbenchmark(stri_paste(test, collapse=''), paste(test,collapse=''), do.call(paste, c(as.list(test), sep="")))
Unit: microseconds
expr min lq mean median uq max neval
stri_paste(test, collapse = "") 137.477 139.6040 155.8157 148.5810 163.5375 226.171 100
paste(test, collapse = "") 404.139 406.4100 446.0270 432.3250 442.9825 723.793 100
do.call(paste, c(as.list(test), sep = "")) 216.937 226.0265 251.6779 237.3945 264.8935 405.989 100
'sdata'가 모두 같은 길이 또는 가변 길이의 문자열을 포함 할 수 있다면'paste (sdata, sep = '', colla pse = '')'는 예기치 않은 결과를 피하기 위해 사용해야합니다. – zelanix