Như những người khác đã chỉ ra, paste()
là cách để thực hiện. Nhưng nó có thể gây phiền nhiễu khi phải gõ paste(str1, str2, str3, sep='')
mỗi khi bạn muốn dấu phân cách không mặc định.
Bạn có thể dễ dàng tạo các hàm bao bọc làm cho đơn giản hơn nhiều.Ví dụ, nếu bạn thấy mình concatenating chuỗi không có dấu phân cách thực sự thường xuyên, bạn có thể làm:
p <- function(..., sep='') {
paste(..., sep=sep, collapse=sep)
}
hoặc nếu bạn thường hay muốn tham gia chuỗi từ một vector (như implode()
từ php):
implode <- function(..., sep='') {
paste(..., collapse=sep)
}
Cho phép bạn làm điều này:
p('a', 'b', 'c')
#[1] "abc"
vec <- c('a', 'b', 'c')
implode(vec)
#[1] "abc"
implode(vec, sep=', ')
#[1] "a, b, c"
Ngoài ra, có việc xây dựng trong paste0
, mà làm điều tương tự như implode
của tôi, nhưng mà không allo cánh tách tùy chỉnh. Nó hiệu quả hơn một chút so với paste()
.
Hầu hết các câu trả lời ở đây đều bị hỏng nếu chuỗi là vectơ, như ghi chú câu trả lời của @ RichardScriven. – smci
@smci những gì về câu trả lời nhỏ tôi đã đăng? bất kỳ đề xuất để cải thiện nó? –