H2O R中的子集操作

8
我有一个h2o对象。
标准的R用于子集。
sub1<-trans[trans$Type==1,]

我在h2o中尝试了相同的方法,但没有起作用。

sub1<-trans[trans$Type==1,]

我也尝试过

sub1<-h2o.exec(trans[trans$Type==1,])

注意:trans是一个H2O数据对象。

有什么方法可以在H2O中实现吗?谢谢。


这是来自h2o包吗? - akrun
是的,它来自h2o包。 - chee.work.stuff
请花些时间创建一个可重现的示例。提供用于创建对象的代码(或类似代码)。这将使帮助您变得更加容易。此外,在示例中包含所有必要的library()语句将有助于显示函数来自哪里。 - MrFlick
理想情况下,您的第一条命令应该可以正常工作。请问您能否添加以下命令的结果:h2o.table(trans$Type)? - Ravi
它确实可以工作,但我要处理大约 10 万行数据,速度非常慢。有没有办法提高性能? - chee.work.stuff
我自己找到了一种方法,sub1<-trans[trans$type==1,names(trans)] - chee.work.stuff
1个回答

5

我不确定这是否是最“亲水”的方法,但是:

transType <- trans$Type
sub1 <- trans[transType == 1,]

看起来对我来说没有问题。

为了提供更具可重复性的示例,请考虑

library(h2o)
localH2O <- h2o.init()

prosPath <- system.file("extdata", "prostate.csv", package = "h2o")
prostate.hex <- h2o.importFile(localH2O, path = prosPath)
prostate.hex[prostate.hex$GLEASON == 6,]

sub1 <- h2o.exec(trans[trans$Type==1,rownames(trans)]) 这样做居然提高了速度。 - chee.work.stuff
你是指 trans[trans$Type == 1, colnames(trans)] 吗? - StevieP
是的,是个小笔误。感谢你指出来。 - chee.work.stuff
2
您是否有一个经过基准测试的非平凡示例,用于演示速度差异? - StevieP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接