【发布时间】:2020-11-18 16:53:06
【问题描述】:
我正在尝试使用特定逻辑对我的数据集进行采样。 我想为每个标记的 id 用某些部分对我的数据进行采样。我想知道R中的sample()函数中是否有这种类型的选项
我的数据集的简单描述是:
id mode OD_ID
1: 50909 1 1
2: 62024 1 1
3: 82812 1 1
4: 100593 1 1
5: 150391 2 1
6: 159413 2 1
7: 132134 2 1
8: 111111 2 1
9: 78524 3 1
10:802212 3 1
.
.
.
我想在同一 id 列“OD_ID”中以一定比例的列“mode”对这些数据进行采样
例如,我想对列 OD_ID=1 的数据进行采样,“模式”的比例不同
我想要 mode=1 71% mode=2 21% 和 mode=3 8% 的采样数据集。 我有更多行数足够的数据,我希望采样数据集的每个 OD_ID 有 10 个数据。我还想将样本的列数四舍五入到最接近的整数。
所以我的输出的一个例子是
id mode OD_ID
some id 1 1
some id 1 1
some id 1 1
some id 1 1
some id 1 1
some id 1 1
some id 1 1
some id 2 1
some id 2 1
some id 1 1
.
.
.
some id 1 2
.
.
.
对于每对 OD_ID,模式 1 的 71% 模式 2 的 21% 模式 3 的 8% 的采样数据
我将不胜感激。
【问题讨论】:
-
您的样本量是否不同?在您的示例中,样本大小为 10。如果跨组始终为 10,那么您将始终获得 7 模式 1、2 模式 2 和 1 模式 3。为什么不只对模式 7、2 和 1 个项目进行采样分别是 1、2 和 3?
-
@ekoam 每个标记为“OD_ID”的样本量不同