функция train в каретке замаскирована такой же функцией в AMORE, не удается заставить метод “AMORE” работать с использованием каретки [дублировать]
Вопрос
Вот код, который я запустил в Rstudio:
library(caret)
set.seed(1)
demo <-data.frame(x1 = runif(100),x2 <- rnorm(100),y <- rbinom(100,1,0.3))
modelout <- try(train(y~.,data = demo,
method = "AMORE"),silent = FALSE)
Результат выглядит следующим образом:
Loading required package: AMORE
Attaching package: ‘AMORE’
The following object is masked from ‘package:caret’:
train
Error in order(x$nhid) : argument 1 is not a vector
In addition: There were 50 or more warnings (use warnings() to see the first 50)
Предупреждающее сообщение связано с функцией "train" в пакете "AMORE".если я наберу
>train
в командном окне после того, как я запустил приведенный выше код, я получаю тело этой функции, которое видно из пакета AMORE.
function (net, P, T, Pval = NULL, Tval = NULL, error.criterium = "LMS",
report = TRUE, n.shows, show.step, Stao = NA, prob = NULL,
n.threads = 0L)
{...
}
<environment: namespace:AMORE>
Я искал свой путь, и, по-видимому, ЛЮБОВЬ появляется раньше каре:
>search()
[1] ".GlobalEnv" "package:AMORE" "package:caret" "package:ggplot2" "package:lattice"
[6] "tools:rstudio" "package:stats" "package:graphics" "package:grDevices" "package:utils"
[11] "package:datasets" "package:methods" "Autoloads" "package:base"
и ниже приведена моя информация о сеансе:
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] AMORE_0.2-14 caret_6.0-21 ggplot2_0.9.3.1 lattice_0.20-24
loaded via a namespace (and not attached):
[1] car_2.0-19 codetools_0.2-8 colorspace_1.2-4 compiler_3.0.2 dichromat_2.0-0
[6] digest_0.6.4 foreach_1.4.1 grid_3.0.2 gtable_0.1.2 iterators_1.0.6
[11] labeling_0.2 MASS_7.3-29 munsell_0.4.2 nnet_7.3-7 plyr_1.8
[16] proto_0.3-10 RColorBrewer_1.0-5 reshape2_1.2.2 scales_0.2.3 stringr_0.6.2
[21] tools_3.0.2
Как я должен решить проблему, чтобы R использовал функцию "train" в "caret", а не в "AMORE"?спасибо за ваше время и заранее благодарю вас за любую помощь.
ДЖЕЙ ТИ
Решение 2
Я понял это, создав копию функции.Да, это проблема с пространством имен.если бы я переопределил функцию trainc <- caret::train, и используйте trainc, а не train в коде, проблема решена.Просто любопытно, почему нельзя напрямую использовать caret::train!тем не менее, спасибо за помощь SethB.
Другие советы
Укажите пространство имен.
caret::train()
library(caret)
set.seed(1)
demo <-data.frame(x1 = runif(100),x2 <- rnorm(100),y <- rbinom(100,1,0.3))
modelout <- try(caret::train(y~.,data = demo,
method = "AMORE"),silent = FALSE)