【发布时间】:2018-05-17 11:23:36
【问题描述】:
考虑以下数据集:
d1 <- c(2, 3, 8)
d2 <- data.frame(d1)
d1 <- c(1, 7, 9, 10)
d3 <- data.frame(d1)
现在我想从d3 中随机抽取 3 个观察值(没有替换)3 次,每次我想将它与d2 合并。所以我应该有 6 个观察值的三个合并数据框。
我试过了:
for (r in 1:3)
{
sam <- sample(1:4, 3, replace = FALSE)
merge <- rbind(d2, d3[sam])
}
但这不起作用。谁能帮帮我?
【问题讨论】:
-
d3[sam]将选择列。你想使用d3[sam, ] -
非常感谢。但现在我只得到一个带有 4 个观察值的数据框。我想要 3 个合并的数据框,每个数据框有 6 个观察值,其中 3 个观察值来自
d2,3 个观察值是从d3随机抽取的。 -
replicate(3, rbind(d2, d3[sample(seq_len(nrow(d3)), 3), , drop=FALSE]), simplify = FALSE)将是一个选项 -
非常感谢!完美:-)
-
一个快速的问题:它是否也可以创建一个 data.frame(或更准确地说是一个列表),其中有三个数据框,只有来自
d3的三个随机观察。因此,我将拥有具有 6 个观察值的三个合并数据框(就像您的代码一样),但我还将拥有 3 个数据框以及在合并数据框中选择的 3 个观察值。有意义吗?
标签: r merge resampling