2016-12-05 29 views
1

給我有一個列表如下塊大小:r分割列表爲不平等的塊,與另一載體

l2<-structure(c(-1, 1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 
-1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, 
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 
1, -1, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-1, 1), .Names = c("11", "12", "13", "14", "15", "16", "17", 
"18", "19", "110", "111", "112", "113", "114", "115", "116", 
"117", "118", "119", "120", "121", "122", "123", "124", "125", 
"126", "127", "128", "129", "130", "131", "132", "133", "134", 
"135", "136", "137", "138", "139", "21", "22", "23", "24", "25", 
"26", "27", "28", "29", "210", "211", "212", "213", "214", "215", 
"216", "217", "218", "219", "220", "221", "222", "223", "224", 
"225", "226", "227", "228", "229", "230", "231", "232", "233", 
"234", "235", "236", "237", "238", "239", "240", "241", "242", 
"243", "244", "245", "246", "31", "32", "33", "34", "35", "36", 
"37", "38", "39", "310", "311", "312", "313", "314", "315", "316", 
"317", "318", "319", "320", "321", "322", "323", "324", "325", 
"326", "327", "328", "329", "330", "331", "332", "333", "334", 
"335", "336", "337", "338", "339", "340", "341", "342", "343", 
"344", "345", "346", "347", "348", "41", "42", "43", "44", "45", 
"46", "47", "48", "49", "410", "411", "412", "413", "414", "415", 
"416", "417", "418", "419", "420", "421", "422", "423", "424", 
"425", "426", "427", "428", "429", "430", "431", "432", "433", 
"434", "435", "436", "437", "438", "439", "440", "441", "442", 
"443")) 

我想這個矢量分成不等的塊。每個塊應遵循以下列表:

num1<-structure(list(`1` = 39L, `2` = 46L, `3` = 48L, `4` = 43L), .Names = c("1", 
"2", "3", "4")) 

這意味着,第一組塊應具有從L2與第一元件39,第二組塊應具有下一個46個元件。

我嘗試使用split(l2, rep(1:4, c(num1),但我得到的錯誤, '在代表錯誤(1:4,C(NUM)):無效的 '次' 參數'

如何避免這個錯誤?

+2

只是'分裂(L2,代表(1:4,NUM1))'對我的作品。雖然'c()'調用是多餘的,但在你所擁有的內容上也加上了小圓括號。 – alistaire

+0

@Ash - 這不是一個錯誤,這是一個警告。 – thelatemail

回答

0

我們可以使用

split(l2, rep(seq(4), num1))