R中的分层数据集

时间:2018-01-31 20:29:25

标签: r

我需要帮助创建一个新的数据帧。我有一个数据帧,我需要从中提取相同的100个样本。但是这些数据必须与原始数据集具有相同比例的男性和女性。我如何保持比例相同?

PTData看起来像这样

PTNumb。性。年龄。 SysbP。吸烟。 ...

1。 M. 12。 76。 Ñ

2。 F 。 13。 89。是的

PTData有5000组数据。我需要拉100,男性的部分是0.46,女性是0.54,并存储为新的数据帧。

我不想使用我最初做过的分层功能。

1 个答案:

答案 0 :(得分:1)

使用tidyverse工具,应该是这样的。我假设给定的比例为0.46男性到0.54女性是现有的数据集比率,因为这就是你所说的你想要的。将来,查找以前的资源并提供示例数据集是很好的。

library(tidyverse)
sampled <- PTData %>%
    group_by(Sex) %>%
    sample_n(size = 100)

编辑:使用基本功能,您可以手动执行此操作:

m <- PTData[Sex == "M", ]
f <- PTData[Sex == "F", ]
sample_m <- m[sample(1:nrow(m), size = 46), ]
sample_f <- f[sample(1:nrow(f), size = 54), ]
sampled <- rbind(sample_m, sample_f)