2010-03-12 22 views
8

nasıl fonksiyonunu inşa edebilirsiniz belki de son sahiptir boyutu n haricinde her vektör, yaniBir vektörü nasıl bölümleyebilirim?

slice(letters, 10) 

list(c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"), 
    c("k", "l", "m", "n", "o", "p", "q", "r", "s", "t"), 
    c("u", "v", "w", "x", "y", "z")) 

döneceğini vektörlerin bir listesini dönecekti

slice(x, n) 

? Eğer yeni bir fonksiyon bu olmak için

split(letters, as.integer((seq_along(letters) - 1)/10)) 

:

cevap

8
slice<-function(x,n) { 
    N<-length(x); 
    lapply(seq(1,N,n),function(i) x[i:min(i+n-1,N)]) 
} 
+0

hızlı bölünmüş çözümden çok gibi görünüyor ... –

8

Sen split işlevini kullanabilirsiniz

slice <- function(x, n) split(x, as.integer((seq_along(x) - 1)/n)) 
slice(letters, 10) 
İlgili konular