代码之家  ›  专栏  ›  技术社区  ›  rnorouzian

剪切数据。在R中形成独特的两半

  •  0
  • rnorouzian  · 技术社区  · 4 年前

    我想在我的 data.frame 下面( 玩具的例子 )分成大小相等的两半。但我想得到所有可能的 唯一的 一半( 每一半 =单独的 数据框架 ).

    例如,在前半部分,我们可能[ q1 , q2 , q3 与。 q4 , q5 , q6 ],在下半场我们可能会[ q1 , 第四季度 , 第三季度 与。 问题2 , 问题5 , 问题6 ],在第三个可能的半场中[ q1 , 第三季度 , 问题6 与。 问题2 , 第四季度 , 问题5 ], ... ( 每3列成为一个新的 数据框架 ).

    我的理解是,最终输出必须存储为 list 结果如何 数据框架 s、 这有可能在未来实现吗 R ?

    dat <- data.frame(q1=1:5, q2=5:1, q3=2:6, q4=6:2, q5=1:5, q6 =2:6)
    
    
    1 回复  |  直到 4 年前
        1
  •  3
  •   Ronak Shah    4 年前

    我们可以使用 combn 创建列编号的所有可能组合,每次取3。使用这些组合将数据帧子集化。

    combn(seq_along(dat), ncol(dat)/2, function(x) 
             list(dat[, x], dat[, -x]), simplify = FALSE)
    

    每个列表的长度为2,数据帧的一半相等。