में n शून्य से अलग कर दिया मैं एक वेक्टर x
स्प्लिट वेक्टर अलग समूह
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)
मैं n
द्वारा अलग किए गए मान विभाजित करने की आवश्यकता को विभिन्न समूहों में या एक से अधिक शून्य (इस मामले में, n
3
है मान लेते हैं) है।
वांछित उत्पादन होगा
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
निम्नलिखित काम नहीं करता है, क्योंकि यह x
विभाजन जब भी वहाँ एक समूह में कम से कम n
शून्य कर रहे हैं।
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,},', ',', पेस्ट (एक्स, पतन = ',')), ';') [[1L ]], ','), as.numeric) ' – rawr