为年龄和性别匹配的训练和验证子集的拆分数据帧

时间:2017-06-13 20:58:16

标签: r

我有大约400个健康受试者的大型数据集用于基础研究。我想把它们分成训练和验证队列。我考虑过随机分裂,但由于年龄差异很大,女性多于男性,我希望将它们匹配为两组,男女比例相似/相同,年龄相似。

由于没有差异(如患者和对照),我事先没有任何组来匹配它们 - 比如 MatchIt -package。

有没有人有想法?

2 个答案:

答案 0 :(得分:0)

randomizr包可能是您正在寻找的。它允许分层随机化,因此您可以在训练和验证集之间随机化您的样本,同时按年龄和性别进行分层。您可能需要创建年龄箱才能使其正常工作。

答案 1 :(得分:0)

+-------------------------------------------+-----------------------------------------+-----------------------------------------+-------------------------------------------+-------------------------------------------+ | aInst | p1 | bInst | p2 | cInst | +-------------------------------------------+-----------------------------------------+-----------------------------------------+-------------------------------------------+-------------------------------------------+ | <http://www.example.com/sample#elsaid> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#history> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#califieri> | | <http://www.example.com/sample#califieri> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#history> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#elsaid> | | <http://www.example.com/sample#wu> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#finance> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#singh> | | <http://www.example.com/sample#singh> | <http://www.example.com/sample#worksin> | <http://www.example.com/sample#finance> | <http://www.example.com/sample/hasWorker> | <http://www.example.com/sample#wu> | +-------------------------------------------+-----------------------------------------+-----------------------------------------+-------------------------------------------+-------------------------------------------+ 中的

randomizr

这将创建一个零和一个向量,将每个性别的一半分配给Z = 1.

如果你想对多个事情进行分层,可能就像

Z <- block_ra(block_var = gender)

如果您需要同时对许多变量进行分层,我建议使用Z <- block_ra(block_var = paste0(gender, age_cat)) 包。