2013-02-28 29 views
12

Tôi muốn lặp lại một véc tơ N lần nhưng yếu tố khôn ngoan, không phải toàn bộ vectơ.Đệ quy lặp lại các phần tử vectơ N lần mỗi

Ví dụ, tôi có:

v <- c('a', 'b') 

Nói rằng tôi muốn lặp lại n lần:

n <- 3 

Tôi muốn:

vfill <- c(rep(v[1], n), rep(v[2], n)) 
print(vfill) 
[1] "a" "a" "a" "b" "b" "b" 

giải pháp tốt nhất của tôi cho đến nay:

ffillv <- function(i) rep(v[i], n) 
c(sapply(seq_len(length(v)), ffillv)) 

Tôi quan tâm đến nhanh & giải pháp mở rộng, ví dụ như sử dụng rbind, plyr vv

+4

Tại sao không 'đại diện (v , mỗi = 3) '? Bạn có thể làm rõ những gì bạn đang cố gắng làm không? – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto Chính xác những gì tôi đang tìm kiếm. Tôi có một chức năng khách quan khá phức tạp để tối ưu hóa, được xây dựng trên dữ liệu "rách rưới". Tôi sử dụng triết lý kết hợp phân chia áp dụng plyr. Trong quá trình phân tích, tôi muốn truy cập một số dữ liệu trung gian cấp thấp và kết hợp nó trong một data.frame. Tôi đã học được một cách để kết hợp như tôi muốn sử dụng ldply, nhưng cách đặc biệt đó đòi hỏi kiểu mở rộng mà tôi đã hỏi. Theo quan điểm của bạn, cách tôi làm nó có thể không tối ưu! Tôi có thể có thêm câu hỏi trong tương lai gần về nó. Cảm ơn. – Patrick

Trả lời

28
rep(v, each=3) 

hoặc

rep(v, each=n) 

mà bạn đã định nghĩa n

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