在数据帧中对随机行进行采样,其中样本数超过行数。分配采样概率

时间:2017-05-19 02:14:21

标签: r random

考虑以下示例数据,存储在名为df

的数据框中
df
x  y
2  4
1  5
0  8

如您所见,此数据框有3行。我想做的是采取100行样本,其中每行具有相同的选择概率(在这种情况下为1/3)。我的输出,我们称之为df_result看起来像这样:

df_result
x  y
0  8
2  4
0  8
1  5
1  5
2  4

等.....直到取样100个。

saw this previous stackoverflow post详细介绍了如何为数据帧采集随机样本:df[sample(nrow(df), 3), ]

然而,当我尝试采样100行时,这(可预测)不起作用,并且不允许分配采样概率。

任何提示?

Thanks`

1 个答案:

答案 0 :(得分:0)

df <- read.table(header = TRUE,
                text = "x  y
2  4
1  5
0  8")

set.seed(1)
df[sample(nrow(df), 10, replace=T), ]

    x y
1   2 4
2   1 5
2.1 1 5
3   0 8
1.1 2 4
3.1 0 8
3.2 0 8
2.2 1 5
2.3 1 5
1.2 2 4