Come altri hanno sottolineato, paste()
è la strada da percorrere. Ma può essere fastidioso dover digitare paste(str1, str2, str3, sep='')
ogni volta che si desidera il separatore non predefinito.
È possibile creare facilmente funzioni di wrapper che lo rendono molto più semplice.Per esempio, se vi trovate concatenazione di stringhe senza separatore davvero spesso, si può fare:
p <- function(..., sep='') {
paste(..., sep=sep, collapse=sep)
}
o se si spesso desidera partecipare stringhe da un vettore (come implode()
da php):
implode <- function(..., sep='') {
paste(..., collapse=sep)
}
Consente fate fare questo:
p('a', 'b', 'c')
#[1] "abc"
vec <- c('a', 'b', 'c')
implode(vec)
#[1] "abc"
implode(vec, sep=', ')
#[1] "a, b, c"
Inoltre, v'è il costruito nel paste0
, che fa la stessa cosa come la mia implode
, ma senza allo separatori personalizzati di ali. È leggermente più efficiente di paste()
.
La maggior parte delle risposte si interrompono se le stringhe sono vettori, come le note di risposta di @ RichardScriven. – smci
@smci e la piccola risposta che ho postato? qualche suggerimento per migliorarlo? –