如何在R中对H2O数据帧进行随机抽样?

时间:2017-05-17 19:16:37

标签: h2o

我有一个包含40列和100万行的h2o数据表。我想随意选择30万行,无需更换。我在线查看的H2o.sample函数给出了错误(我已经启动了h2o集群)

Error: could not find function "h2o.sample"

我还有其他办法吗?提前谢谢!

1 个答案:

答案 0 :(得分:6)

没有h2o.sample()功能(也许在一个非常旧的H2O版本中?)。您可以使用h2o.splitFrame()功能将框架拆分为多个部分。这也可以作为获取数据框的随机子集的方法(无需替换)。该函数实际上会创建两个(或更多)数据,所以如果你只需要30%,这里有一个例子在R中使用iris来获得行的~30%随机样本:

library(h2o)
h2o.init()

hf <- as.h2o(iris)
ss <- h2o.splitFrame(hf, ratios = c(0.3), seed = 1)
sub_hf <- ss[[1]]   # will contain 30% of the rows

请注意,出于可伸缩性原因,h2o.splitFrame()使用“近似拆分”,这意味着您不一定会获得30%的行。但是,预期值为30%,当数据更大时,它将更接近所需的百分比。虹膜是一个很小的150行数据集,因此存在更多的差异。