muszę to wektor x
podziału wektor oddzielone przez N zer na różne grupy
x = c(1, 1, 2.00005, 1, 1, 0, 0, 0, 0, 1, 2, 0, 3, 4, 0, 0, 0, 0, 1, 2, 3, 1, 3)
muszę rozdzielania wartości oddzielone n
(w tym przypadku, załóżmy n
jest 3
) lub więcej zer na różne grupy.
Pożądany wynik byłby
list(x1 = c(1, 1, 2.00005, 1, 1),
x2 = c(1, 2, 0, 3, 4),
x3 = c(1, 2, 3, 1, 3))
#$x1
#[1] 1.00000 1.00000 2.00005 1.00000 1.00000
#$x2
#[1] 1 2 0 3 4
#$x3
#[1] 1 2 3 1 3
Następujące nie działa, ponieważ dzieli x
nawet gdy istnieją mniej niż n
zera w grupie.
temp = cumsum(x == 0)
split(x[x!=0], temp[x!=0])
#$`0`
#[1] 1.00000 1.00000 2.00005 1.00000 1.00000
#$`4`
#[1] 1 2
#$`5`
#[1] 3 4
#$`9`
#[1] 1 2 3 1 3
'lapply (strsplit (strsplit (gsub ('(, 0) {3},', '', pasty (x, załamanie = '')) '' ') [[1L ]], ','), as.numeric) ' – rawr