比例函数 Returns: FUN(x, aperm(array(STATS, dims[perm]), order(perm)), ...) 出错

Scale Function Returns: Error in FUN(x, aperm(array(STATS, dims[perm]), order(perm)), ...)

正在尝试训练 NeuralNet,但我无法规范化我的数据。

为缩放定义最大和最小值工作正常。

 maxs <- apply(tour_weahter_data, 2, max) 
 mins <- apply(tour_weahter_data, 2, min)

这是我要缩放的数据:

head(tour_weahter_data)
Start Time Starting          Station ID Duration  Distance Temperatur Humidity
    1 2016-07-07 13:00:00                3063       12  578.7915         18       72
    2 2016-07-07 13:00:00                3040       10 1262.4654         18       72
    3 2016-07-07 13:00:00                3063       19 1660.0441         18       72
    4 2016-07-07 13:00:00                3018       10  907.1427         18       72
    5 2016-07-07 13:00:00                3076       10 1004.5161         18       72
    6 2016-07-07 13:00:00                3034        4  448.0982         18       72

这是对函数的调用:

 scaled <- as.data.frame(scale(tour_weahter_data, center = mins, scale = maxs - mins))

这是我收到的错误消息:

Error in FUN(x, aperm(array(STATS, dims[perm]), order(perm)), ...) : non-numeric argument to binary operator
In addition: Warning message:
In scale.default(tour_weahter_data, center = mins, scale = maxs - : NAs introduced by coercion

是我的数据有问题还是我功能使用不当?

您应该将 scalenumeric 变量一起使用,因此您必须仅将其与数字变量一起使用。

这是一种使用 dplyr 的方法。

library(dplyr)

vars_scale <- tour_weahter_data %>% 
  select_if(is.numeric) %>% 
  colnames()


scale_min_max <- function(x) scale(x, center = min(x), scale = max(x) - min(x))


tour_weahter_data %>% 
  mutate_at(vars_scale, scale_min_max)

## A tibble: 6 x 7
#  Start[,1] Time_Starting       Station_ID[,1] Duration[,1]
#      <dbl> <dttm>                       <dbl>        <dbl>
#1       0   2016-07-07 13:00:00          0.776        0.533
#2       0.2 2016-07-07 13:00:00          0.379        0.4  
#3       0.4 2016-07-07 13:00:00          0.776        1    
#4       0.6 2016-07-07 13:00:00          0            0.4  
#5       0.8 2016-07-07 13:00:00          1            0.4  
#6       1   2016-07-07 13:00:00          0.276        0    
## ... with 3 more variables: Distance[,1] <dbl>,
##   Temperatur[,1] <dbl>, Humidity[,1] <dbl>