REAL() 只能应用于 'numeric',不能应用于 'integer'
REAL() can only be applied to a 'numeric', not a 'integer'
虽然问题似乎是重复的,但我发布这个是因为他们没有给出解决方案并且与我的问题相关。
dtrain<-xgb.DMatrix(data=data.matrix(train),label=data[t,c(31)])
错误 xgb.DMatrix(data = data.matrix(train), label = data[t, c(31)]) :
REAL() 只能应用于 'numeric',不能应用于 'integer'
> 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() 是什么。
提前致谢!!
粗略地说,REAL 是一个 C 函数,用于访问 C 中 R 数字向量的内容。
错误指出 xgb.DMatrix
采用数值,其中数据是整数。
将数据转换为数值使用
train[] <- lapply(train, as.numeric)
然后使用
xgb.DMatrix(data=data.matrix(train))
X:预测变量的数据框
Y:标签向量
dtrain <- xgb.DMatrix(as.matrix(as.numeric(X)),Y)
或者:
xgb<- xgboost(数据=as.matrix(X),标签=Y,...)
虽然问题似乎是重复的,但我发布这个是因为他们没有给出解决方案并且与我的问题相关。
dtrain<-xgb.DMatrix(data=data.matrix(train),label=data[t,c(31)])
错误 xgb.DMatrix(data = data.matrix(train), label = data[t, c(31)]) : REAL() 只能应用于 'numeric',不能应用于 'integer'
> 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() 是什么。 提前致谢!!
粗略地说,REAL 是一个 C 函数,用于访问 C 中 R 数字向量的内容。
错误指出 xgb.DMatrix
采用数值,其中数据是整数。
将数据转换为数值使用
train[] <- lapply(train, as.numeric)
然后使用
xgb.DMatrix(data=data.matrix(train))
X:预测变量的数据框 Y:标签向量
dtrain <- xgb.DMatrix(as.matrix(as.numeric(X)),Y)
或者: xgb<- xgboost(数据=as.matrix(X),标签=Y,...)