【发布时间】:2018-02-01 19:42:22
【问题描述】:
我有一个包含 3000 行和 50,000 列的表。从这些数据中,我想制作 5 个数据集,其中包含 10% 的原始数据而没有任何重叠(在这种情况下,3000 的 10%=300)。我也想从原始数据集中删除重新采样的数据集。示例
1.Original data (O)
a. Randomly resampled dataset1 (RD1)
b. Randomly resampled dataset2 (RD2)
c. Randomly resampled dataset3 (RD3)
d. Randomly resampled dataset4 (RD4)
e. Randomly resampled dataset5 (RD5)
2. remove RD from O
a. O - RD1 = New dataset1
b. O - RD2 = New dataset2
c. O - RD3 = New dataset3
d. O - RD4 = New dataset4
e. O - RD5 = New dataset5
我在 R 中尝试了如下所示的随机重采样
original=read.table("table1.txt", header=F)
RD1=original[sample(nrow(original), replace=F, size=0.1*nrow(original)), ]
但它有重叠。如何制作非重叠集?以及如何从原始数据集中删除 RD 以制作新数据集?任何 awk、sed、python 或 R 解决方案?
【问题讨论】:
-
也许你应该试试这个
RD1=original[sample(1:nrow(original), replace=F, size=0.1*nrow(original)), ] -
modelr让这变得非常简单。 -
或者使用
split(sample(20), seq(20/5))之类的索引列表和lapply的子集(使用负索引来获取其余部分)。