随机抽样有助于我们减少分析中的偏差。如果我们有分组数据,那么我们可能想根据分组找到随机样本。例如,如果我们有一个带有组变量的数据框,并且每个组包含十个值,那么我们可能想要创建一个随机样本,在该样本中,将从每个组中随机选择两个值。这可以通过使用.SD内的示例函数来完成
考虑下面的data.table-
library(data.table) Group<-rep(c("A","B","C","D","E"),times=4) Percentage<-sample(1:100,20) dt1<-data.table(Group,Percentage) dt1
输出结果
Group Percentage 1: A 97 2: B 68 3: C 19 4: D 32 5: E 98 6: A 48 7: B 94 8: C 54 9: D 7 10: E 76 11: A 10 12: B 31 13: C 59 14: D 84 15: E 41 16: A 99 17: B 1 18: C 72 19: D 42 20: E 17
从每个组创建大小为2的随机样本-
dt1[,.SD[sample(.N, min(2,.N))],by=Group]
输出结果
Group Percentage 1: A 48 2: A 99 3: B 94 4: B 31 5: C 54 6: C 59 7: D 42 8: D 84 9: E 98 10: E 76
让我们看另一个例子-
Class<-rep(c("First","Second","Third","Fourth"),times=10) Experience<-sample(1:5,40,replace=TRUE) dt2<-data.table(Class,Experience) head(dt2,10)
输出结果
Class Experience 1: First 4 2: Second 2 3: Third 4 4: Fourth 2 5: First 4 6: Second 5 7: Third 3 8: Fourth 5 9: First 3 10: Second 5
tail(dt2,10)
输出结果
Class Experience 1: Third 4 2: Fourth 2 3: First 5 4: Second 2 5: Third 1 6: Fourth 4 7: First 5 8: Second 2 9: Third 4 10: Fourth 4
dt2[,.SD[sample(.N, min(5,.N))],by=Class]
输出结果
Class Experience 1: First 3 2: First 3 3: First 4 4: First 5 5: First 5 6: Second 5 7: Second 2 8: Second 5 9: Second 2 10: Second 1 11: Third 3 12: Third 1 13: Third 4 14: Third 3 15: Third 4 16: Fourth 2 17: Fourth 5 18: Fourth 2 19: Fourth 4 20: Fourth 2
假设我有以下数据 现在我想向添加两个新列,分别命名为和,具有各自的值(1,2)。我可以使用循环来执行此操作,但我想以data.table的方式执行。 结果将是这样的: 到目前为止,我想出了类似这样的东西 其中< code>xx是一个< code > data . table -类似于< code >的命令。N,它寻址< code > by -组的值。 谢谢你的帮助! 附录:for-loop 方式
我有一个数据帧rT,它可以有任意数量的列和行。 我想生成一个新的数据帧,delT,具有与rT相同的列数(也具有相同的列标题),有n行,其中每列是随机和均匀的,delT每列的最小值基于rT相应列的最小值和最大值。rT的最小值和最大值不一定在每列的第一行和最后一行。 例如,使用 runif: 其中x是rT的适当列。对于delT的A列(基于rT的A栏),runif的max(x)=73.750,min(x
本文向大家介绍如何随机化R中已经创建的向量?,包括了如何随机化R中已经创建的向量?的使用技巧和注意事项,需要的朋友参考一下 有些向量是在R中随机创建的,而有些不是在R中随机创建的,但是我们可以对这两种类型的向量进行随机化处理。随机化可确保无偏性,因此,特别是在创建具有易于改变分析结果的目标的矢量时,这是必要的。R中的随机化可以简单地借助样本函数完成。 不是随机创建的向量的随机化- 随机创建的向量的
本文向大家介绍如何在R中创建具有随机值的矩阵?,包括了如何在R中创建具有随机值的矩阵?的使用技巧和注意事项,需要的朋友参考一下 通常,使用给定值创建矩阵,但是如果我们要创建具有随机值的矩阵,则将对矩阵函数使用常规方法。R中的随机选择可以根据我们的目标以多种方式完成,例如,如果要从正态分布中随机选择值,则将使用rnorm函数并将其存储在矩阵中,然后将其传递到矩阵函数中。 示例 输出结果 示例 输出结
本文向大家介绍如何通过R中data.table中的列名删除列?,包括了如何通过R中data.table中的列名删除列?的使用技巧和注意事项,需要的朋友参考一下 我们可以通过将列设置为NULL来实现 示例 删除一列x 删除两列
问题内容: 这个问题:如何生成随机BigInteger描述了一种与BigIntegers实现与Random.nextInt(int n)相同的语义的方法。 我想对BigDecimal和Random.nextDouble()做同样的事情。 上述问题的一个答案建议创建一个随机的BigInteger,然后从中以随机的比例创建一个BigDouble。一个非常快速的实验表明这是一个非常糟糕的主意:) 我的直