2015-07-29 57 views
7

Tôi muốn tạo ra vector sau đó bao gồm hai lồng nhau sequences, cộng với các chữ cái ab:tạo chuỗi lồng nhau trong R

desired.data <- c('a1b1', 'a1b2', 'a1b3', 'a2b1','a2b2', 'a2b3', 
        'a3b1', 'a3b2', 'a3b3', 'a4b1','a4b2', 'a4b3', 
        'a5b1', 'a5b2', 'a5b3') 

Tôi nghi ngờ điều này là một bản sao, nhưng tôi đã tìm kiếm Stack Overflow cho một giờ không thành công. Cảm ơn bạn đã đề xuất.

Trả lời

3

Dưới đây là một giải pháp thay thế có thể khả thi hơn nếu mẫu trong chuỗi phức tạp hơn chỉ hai con số và hai ký tự

concat <- function(x) paste0('a', x[, 2], 'b', x[, 1]) 
concat(expand.grid(1:3, 1:5)) 
#[1] "a1b1" "a1b2" "a1b3" "a2b1" "a2b2" "a2b3" "a3b1" "a3b2" "a3b3" "a4b1" "a4b2" "a4b3" "a5b1" "a5b2" "a5b3" 
7

Sử dụng paste0, rep với each đối số của nó, và dựa vào tái chế vector:

paste0("a", rep(1:5, each = 3), "b", 1:3) 
#[1] "a1b1" "a1b2" "a1b3" "a2b1" "a2b2" "a2b3" "a3b1" "a3b2" "a3b3" "a4b1" "a4b2" "a4b3" "a5b1" "a5b2" "a5b3" 
+0

Cả hai câu trả lời đều xứng đáng với dấu kiểm. –

Các vấn đề liên quan