我有一个表格,格式如下。我简化了它以便说明问题(样本数是随机的,在我的数据中它们总计10000,但结构是相同的)
# 0-5 5-10 10-15 15-20 20-25 25-30 30-35 35-40 40-45 45-50
# 700 1000 1400 1700 1900 1500 1000 300 50 1
根据输入的最小值和最大值动态创建组。 y指的是我输入的随机样本。我使用以下代码创建了这个表。
groups <- seq(0, 50, (50-0) / 10)
assoc <- cut(sr$y, groups, include.lowest = TRUE)
tab <- tabulate(assoc, nbins = length(groups) -1 )
现在我的目标是将colums(及其样本)与下一个colum(及其样本)合并,如果它没有满足例如: 100个样本。我到了检查哪个:
sn <- which(tab < 60) + 1
现在我不得不合并colums及其示例数据。我真的很感激一些帮助。
答案 0 :(得分:0)
使用gather
包中的separate
,unite
,spread
和tidyr
可以实现一个解决方案。
方法是:
Spread
和separate
以from
&amp; to
group
减去samples
的行与下一行合并来分配100
。 min
的{{1}},from
的{{1}}和max
的{{1}} to
和sum
以原始格式获取data.frame。 <强>溶液#1 强>
samples
<强>溶液#2:强>
如果OP的意图是继续摸索列直到达到目标样本(例如100),那么我们需要一个自定义函数来创建组。该功能如下:
unite
数据强>
spread