如何在H2O数据框中添加新的分类变量

时间:2019-04-14 07:33:44

标签: r variables h2o

我正在尝试在框架h2o中添加新的分类变量。 我已经根据一些要求创建了一个新变量,并且试图将新值添加到h2o框架中,但是却遇到了错误。

要添加的新变量:

late_arrival <- with(flights,
 ifelse(arr_delay>=30,1,
 ifelse(arr_delay<30,0,NA)))
table(late_arrival)

我正在尝试使用现有的h2o框架对其进行变异,以添加此新变量:

 flights_new <- select(flights.hex) %>%
mutate(late_arrival)
  

UseMethod(“ select_”)中的错误:         没有适用于“ select_”的适用方法应用于“ H2OFrame”类的对象

我还尝试了collect函数:

flights_new <- select (flights.hex, late_arrival) %>% collect()
  

UseMethod(“ select_”)中的错误:         没有适用于“ select_”的适用方法应用于“ H2OFrame”类的对象

如何将新的分类变量添加到h2o数据框中?

1 个答案:

答案 0 :(得分:0)

您可以在将数据加载到h2o集群之前进行此更改,或者在flight.hex的h2o集群内部进行更改。参见下面的mtcars示例。

# change before loading data into h2o:
mtcars$new_condition <- ifelse(mtcars$mpg >= 20, 1, 
                               ifelse(mtcars$mpg <20, 0, NA))

library(h2o)
h2o.init()

mtcars.hex <- as.h2o(mtcars)

# change when data is inside h2o cluster
mtcars.hex$new_condition2 <- ifelse(mtcars.hex$mpg >= 20, 1, 
                                   ifelse(mtcars.hex$mpg <20, 0, NA))

mtcars.hex

   mpg cyl disp  hp drat    wt  qsec vs am gear carb new_condition new_condition2
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4             1              1
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4             1              1
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1             1              1
4 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1             1              1
5 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2             0              0
6 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1             0              0

[32 rows x 13 columns]