【问题标题】:REAL() can only be applied to a 'numeric', not a 'integer'REAL() 只能应用于“数字”,而不是“整数”
【发布时间】:2016-02-26 18:48:21
【问题描述】:

虽然问题似乎是重复的,但我发布这个是因为他们没有给出解决方案并且与我的问题相关。

dtrain<-xgb.DMatrix(data=data.matrix(train),label=data[t,c(31)])

xgb.DMatrix(data = data.matrix(train), label = data[t, c(31)]) 中的错误: REAL() 只能应用于“数字”,不能应用于“整数”

> class(data[t,c(31)])
[1] "integer"

> str(train)

'

data.frame':    1965 obs. of  30 variables:
 $ having_IP_Address          : int  2 2 2 2 2 2 2 2 2 2 ...
 $ URL_Length                 : int  3 3 3 3 3 3 3 3 3 3 ...
 $ Shortining_Service         : int  1 1 1 1 1 1 1 1 1 1 ...
 $ having_At_Symbol           : int  1 1 1 1 1 1 1 1 1 1 ...
 $ double_slash_redirecting   : int  2 2 2 2 2 2 2 2 2 2 ...
 $ Prefix_Suffix              : int  2 2 1 2 3 2 1 1 3 1 ...
 $ having_Sub_Domain          : int  1 2 1 1 1 3 1 2 1 1 ...
 $ SSLfinal_State             : int  2 2 2 1 2 2 1 2 2 2 ...
 $ Domain_registeration_length: int  3 1 3 2 2 1 2 3 2 1 ...
 $ Favicon                    : int  1 2 1 1 1 1 1 1 2 1 ...
 $ port                       : int  1 2 1 1 1 1 1 1 2 1 ...
 $ HTTPS_token                : int  2 2 2 2 2 2 2 2 2 2 ...
 $ Request_URL                : int  1 1 1 2 2 1 2 1 2 1 ...
 $ URL_of_Anchor              : int  2 2 2 2 2 3 1 2 3 1 ...
 $ Links_in_tags              : int  3 2 3 3 1 3 2 1 3 2 ...
 $ SFH                        : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Submitting_to_email        : int  2 1 2 2 2 2 2 1 1 2 ...
 $ Abnormal_URL               : int  2 2 2 2 2 2 2 2 2 2 ...
 $ Redirect                   : int  1 1 1 1 1 1 1 1 1 1 ...
 $ on_mouseover               : int  1 2 1 1 1 1 1 1 1 1 ...
 $ RightClick                 : int  1 1 1 1 1 1 1 1 1 1 ...
 $ popUpWidnow                : int  1 2 1 1 1 1 1 1 2 1 ...
 $ Iframe                     : int  1 2 1 1 1 1 1 1 2 1 ...
 $ age_of_domain              : int  3 1 1 1 3 3 1 1 1 1 ...
 $ DNSRecord                  : int  2 1 1 2 1 2 1 2 2 1 ...
 $ web_traffic                : int  3 3 2 3 3 3 1 3 2 2 ...
 $ Page_Rank                  : int  2 3 1 1 1 1 1 1 1 1 ...
 $ Google_Index               : int  1 1 1 1 1 1 1 1 1 1 ...
 $ Links_pointing_to_page     : int  2 1 3 2 1 2 1 3 2 2 ...
 $ Statistical_report         : int  2 1 2 2 2 2 2 2 2 2 ...

我通过搜索这个错误了解到的是 REAL() 不能应用于列表。我不知道这是什么REAL()。 提前致谢!!

【问题讨论】:

  • 您是否尝试按照错误提示train[] &lt;- lapply(train, as.numeric) 将数据转换为数字,然后使用xgb.DMatrix(data=data.matrix(train))

标签: r data-manipulation xgboost


【解决方案1】:

粗略地说,REAL 是一个 C 函数,用于访问 C 中 R 数值向量的内容。

【讨论】:

    【解决方案2】:

    错误指出xgb.DMatrix 采用数值,其中数据是整数。

    将数据转换为数字使用

    train[] <- lapply(train, as.numeric)
    

    然后使用

    xgb.DMatrix(data=data.matrix(train))
    

    【讨论】:

    【解决方案3】:

    X:预测变量的数据框 Y:标签向量

    dtrain

    或者: xgb

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      相关资源
      最近更新 更多