r-符号回归预测问题:娱乐中的错误(x [[i],..):找不到对象'x'



我正在尝试在R中运行符号回归,并使用符号回归并预测RGP软件包中在训练和测试数据中定义的函数。我的培训和测试数据都是具有相同列名称的数据帧。SymbolicRecress功能正常工作并生成模型。但是,当我尝试预测时,我会得到这个错误:

有趣的错误(x [[i],...(:未找到对象'aadac'

这是我编写的代码。

formula_terms = paste(feature_names, collapse = "+")
form = paste(c(out_name, formula_terms), collapse = "~")
model = symbolicRegression(form, train)
prediction = predict(model, newdata = test)

最终公式"形式"看起来像这样:

>form
[1] "ABCC12~AADAC+AAK1"

此外," AADAC"绝对是"测试"中的列名称,所以我不确定为什么找不到它。

>test[,"AADAC"]
[1] -0.9473086 -0.3793400 -0.5190044 -0.5221080 -0.3917546 -0.4445167  5.1917181
[8] -0.3638217

我认为问题可能是我将" AADAC"视为列名,而不是变量,所以我尝试了:

test$AADAC = test[,"AADAC"]

但这没有解决问题。是否有人知道为什么列名不能与数据框中的正确列匹配?任何建议都将不胜感激。

对于可重复性,这是培训和测试数据的子集,以及用于安装和加载RGP的命令:

if (!require(devtools)) {
    install.packages("devtools")
    library("devtools")
}
if (!require(rgp)){
    install_github("cran/rgp")
    library("rgp")
}
train = data.frame(c(-0.79541578, -0.57185906,  0.36521617),c( 1.02661507,  0.83108490, -0.61832129),c( -2.45419706,  2.89389899,  0.47570124))
test = data.frame(c( -0.09121212, -0.69295228, 0.26834160),c(-0.9473086, -0.3793400, -0.5190044),c( -0.13091150, 0.07954598, -0.21344385))
colnames(train) = c("ABCC12", "AADAC", "AAK1")
colnames(test) = c("ABCC12", "AADAC", "AAK1")
feature_names = c("AADAC", "AAK1")
out_name = "ABCC12"

对复活一个长期的主题表示歉意,但是我最近遇到了同样的问题,并能够通过修改prective((函数呼叫flasch在主循环内的使用来解决它。解决方案主要涉及在其中删除使用((子句。如果它仍然让您感兴趣(极不可能,但仍然如此(,我可以告诉您如何。

最新更新