【问题标题】:R Split a List into unequal chunks, with chunk size given by another vectorR将列表拆分为不相等的块,块大小由另一个向量给出
【发布时间】:2016-12-05 12:34:26
【问题描述】:

我有一个清单如下:

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),但我得到错误,'rep(1:4, c(num)) 中的错误:'times' 参数无效'

如何避免这个错误?

【问题讨论】:

  • 只是 split(l2, rep(1:4, num1)) 为我工作。尽管 c() 调用是多余的,但在您所拥有的内容上添加右括号也是如此。
  • @Ash - 这不是错误,而是警告。

标签: r list vector


【解决方案1】:

我们可以使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多