当使用带有h2o数据帧的大型索引集时,我们遇到了一些奇怪的(破坏的)行为
以下代码不对iris_h2o进行任何更改:
library(h2o)
h2o.init()
data(iris)
iris<-rbind(iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris)
iris<-rbind(iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris)
iris<-rbind(iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris)
iris_h2o<-as.h2o(iris)
iris_h2o[c(1:1000),"Sepal.Length"]<-iris_h2o[c(1:1000),"Sepal.Length"]
iris_h2o
输出:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
但是,如果将索引的大小设置为1001,则突然看起来左右之间的索引变得不一致
library(h2o)
h2o.init()
data(iris)
iris<-rbind(iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris)
iris<-rbind(iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris)
iris<-rbind(iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris,iris)
iris_h2o<-as.h2o(iris)
iris_h2o[c(1:1001),"Sepal.Length"]<-iris_h2o[c(1:1001),"Sepal.Length"]
iris_h2o
输出:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 5.1 3.0 1.4 0.2 setosa
3 4.9 3.2 1.3 0.2 setosa
4 4.7 3.1 1.5 0.2 setosa
5 4.6 3.6 1.4 0.2 setosa
6 5.0 3.9 1.7 0.4 setosa
这在R 3.3.2上用h2o 3.10.0.8和R 3.4.0确认,最新版本的h2o可用于CRAN(3.10.4.6)
我们想知道是什么导致了这种情况以及如何避免将来出现此问题