如何使用R拆分数据集,使列中的值之和在子集中大致相同?
我在R中有一个数据集,如下所示:如何使用R拆分数据集,使列中的值之和在子集中大致相同?,r,R,我在R中有一个数据集,如下所示: x <- structure(list(value = c(7.496, 11.073, 11.329, 9.282, 8.748, 12.515, 7.46, 9.189, 9.62, 5.815, 5.945, 7.778, 10.077, 15.311, 8.591, 6.048, 7.568, 6.14, 6.591, 5.376,
x <- structure(list(value = c(7.496, 11.073, 11.329, 9.282, 8.748, 12.515, 7.46, 9.189, 9.62, 5.815, 5.945,
7.778, 10.077, 15.311, 8.591, 6.048, 7.568, 6.14, 6.591, 5.376,
8.038, 7.496, 7.983, 6.591, 6.591, 7.44, 6.453, 11.589, 5.751,
8.464, 7.577, 6.014, 12.733, 7.108, 14.857, 15.503, 12.468, 13.39,
10.796, 10.923, 7.215, 13.72, 7.574, 11.77, 10.409, 7.591, 6.174,
6.748, 10.091, 9.8, 6.527, 9.251, 6.622, 13.742, 4.454, 8.331,
7.702, 7.197, 9.629, 9.76, 3.663, 19.55, 8.107, 9.637, 10.146,
9.564, 6.947, 14.45, 10.266, 5.457, 10.629, 6.275, 2.48, 4.513,
6.755, 2.885, 5.773, 2.855, 2.429, 2.955, 2.486, 3.239, 4.29,
3.043, 3.501, 3.276, 4.018, 2.727, 5.199, 2.371, 3.732, 2.533,
4.482, 3.215, 7.782, 3.435, 4.201, 3.074, 3.475, 2.923, 3.025,
4.308, 3.932, 2.923, 3.491, 2.852, 3.916), id = 1:107), row.names = c(NA,
-107L), class = "data.frame")
x只需使用cumsum
即可获得“value”列的累积和。将结果与所需拆分值(sum(x$value)/2
)进行逻辑比较,以拆分数据集
split(x, cumsum(x$value) <= sum(x$value)/2)
split(x,cumsum(x$value)split(x,cumsum(x$value))非常好用,非常感谢!@a5c1d2h2i1m1n2o1r2t1没问题。我已经发布了我的评论作为答案。