基于R中的多条件从数据表中随机选取数据样本
我在一个数据表中有一个大约1100万行的大型数据集。我想根据多个条件生成一个随机的行样本。下面是具有所需输出的示例数据集基于R中的多条件从数据表中随机选取数据样本,r,R,我在一个数据表中有一个大约1100万行的大型数据集。我想根据多个条件生成一个随机的行样本。下面是具有所需输出的示例数据集 Var Code Count_Curr res 1 146 1649 0.05 1 147 1649 0.05 1 148 1649 0.1 1 149 1649 0.06 1 150 1649
Var Code Count_Curr res
1 146 1649 0.05
1 147 1649 0.05
1 148 1649 0.1
1 149 1649 0.06
1 150 1649 0.01
1 151 1649 0.1
1 152 1649 0.06
1 153 1649 0.1
2 146 1649 0.05
2 147 1649 0.05
2 148 1649 0.1
2 149 1649 0.06
2 150 1649 0.01
2 151 1649 0.1
2 152 1649 0.06
2 153 1649 0.1
3 146 1649 0.05
3 147 1649 0.05
3 148 1649 0.1
3 149 1649 0.06
3 150 1649 0.01
3 151 1649 0.1
3 152 1649 0.06
3 153 1649 0.1
采样后的期望输出应如下所示
Var Code Count_Curr res
1 146 1649 0.05
1 147 1649 0.1
1 146 1649 0.06
2 146 1649 0.05
2 147 1649 0.1
2 146 1649 0.06
3 146 1649 0.05
3 147 1649 0.1
3 146 1649 0.06
我想从每个“var”中选择5或10个代码,并且它还应该涵盖该“var”可用的所有“res”。我不确定这是否是您想要的,但可以使用
caret
包和createDataPartition
函数,以保持var频率与原始数据帧相似:
要选择10%的行,请执行以下操作:
indexes <- createDataPartition(df$var,times = 1,p = 0.1,list = FALSE)
df.sample <- df[indexes,]
索引我认为这可以通过使用dplyr包来实现
dat%>%分组依据(变量,res)%>%sample n(5,replace=FALSE)
它依赖于每个{Var res}组合有5行;如果不是这样,您需要指定在这种情况下希望发生什么
编辑-重读,如果特定变量中有5个或5个以上不同的res,则需要不同的方法。目前还不清楚是哪种情况,但在上述代码中,用“1”替换“5”可能是可行的