r - 使用 id 变量进行采样

标签 r sampling

我知道如何使用 R 进行普通随机抽样:

mysample <- mydata[sample(1:nrow(mydata), 100),]

但是,我想通过 id 变量进行采样。让我解释一下 - 我的数据集如下所示:
id var1 var2 ...
1  5.1  1.2
1  4.7  0.9
2  3.3  1.6
3  3.4  5.7
4  7.9  1.3

现在,我想通过 id 编号随机抽取 2 个样本。假设随机样本产生 id 1 和 4,那么我的样本将如下所示:
id var1 var2 ...
1  5.1  1.2
1  4.7  0.9
4  7.9  1.3

换句话说,我正在采样 2 个 ID 号,但实际上我得到了 3 个案例。

我怎样才能在 R 中做到这一点?

最佳答案

您的数据:

mydata <- read.table(text = "id var1 var2 
1  5.1  1.2
1  4.7  0.9
2  3.3  1.6
3  3.4  5.7
4  7.9  1.3", header = TRUE)

sample 二 id值(value)观:
set.seed(1)
ids <- sample(unique(mydata$id), 2) # important: the UNIQUE id numbers
# [1] 2 4

提取子集:
mydata[mydata$id %in% ids, ]
#   id var1 var2
# 3  2  3.3  1.6
# 5  4  7.9  1.3

关于r - 使用 id 变量进行采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21237675/

相关文章:

R ggplot2 : Change the spacing between the legend and the panel

signal-processing - 线性量化和非线性量化有什么区别?

machine-learning - 如何估计大型数据集的准确性?

algorithm - 在单位半球上均匀分布点

r - NA 识别 boolean 运算符

r - 逐字命令参数 : deparse(substitute(foo)) in a wrapper

具有多个变量的 R ddply

python - 根据分布从列表中随机抽样

algorithm - 对一组特征向量进行采样以获得每个特征的 "uniform"直方图

r - 使用可选参数在 R 中编写 ggplot 函数