【发布时间】:2014-12-02 16:15:36
【问题描述】:
我想从数据框中选择 n 个随机记录的子集,但我想要基于列的唯一值。例如,从数据集中
X1 X2
1 4
1 5
1 6
2 44
2 55
3 444
3 555
3 666
3 777
对于 n=3,我不想要这样的东西:
X1 X2
3 777
3 555
2 55
其中两条记录来自同一个种子 X1 = 3 但我想要类似的东西:
X1 X2
1 5
2 44
3 555
我该怎么做?
我尝试了以下方法:
df <- data.frame(matrix(c(1,1,1,2,2,3,3,3,3,4,4,4,5,5,5,5,5,4,5,6,44,55,444,555,666,777,4444,5555,6666,10,20,30,40,50),nrow=17,ncol=2))
df.colnames = c("x1","x2")
df[sample(nrow(df),3),]
但它似乎并没有给我想要的东西。如何调整样本以获得我想要的?或者我应该使用不同的函数进行子集化
编辑请注意,我的 df 将有大约 5000 万条记录,我可能希望从中抽取 100 万条记录。 (如 1 m 个唯一数据点)。哪种方法最有效?
【问题讨论】: