Nie rozumiesz, co robi load
. Przywraca obiekt do tej samej nazwy, którą miał przy sobie. To, co widzisz w M
, jest wartością zwracaną funkcji load()
. Wywołanie load()
ma dodatkowy efekt uboczny ładowania obiektu z powrotem pod tą samą nazwą, w której został zapisany.
Rozważmy:
require("e1071")
data(iris)
## classification mode
# default with factor response:
model <- svm (Species~., data=iris)
## Save it
save(model, file = "my-svm.RData")
## delete model
rm(model)
## load the model
M <- load("my-svm.RData")
Spójrzmy teraz na obszarze roboczym
> ls()
[1] "iris" "M" "model"
Stąd model
został przywrócony jako efekt uboczny load()
.
Od ?load
widzimy powód M
zawiera nazwę obiektów stworzonych (a więc zapisany pierwotnie)
Value:
A character vector of the names of objects created, invisibly.
Jeśli chcesz przywrócić obiekt do nowej nazwy, należy saveRDS()
i readRDS()
:
Aby uzyskać więcej informacji na temat saveRDS()
i readRDS()
, zobacz odpowiednią pomoc ?saveRDS()
, a może Cię zainteresować blog post I wrote on this topic.
Działa, z wyjątkiem funkcji nazywanej nie "loadRDS", ale "readRDS". Dzięki! – user3276530
@ user3276530 Ups, poprawiono teraz. Jeśli Twój problem został rozwiązany, rozważ zaakceptowanie jednej z odpowiedzi, klikając znacznik wyboru obok niej. –
Otrzymuję 'nie dotyczy metody" przewidzieć "stosowane do obiektu klasy" dostroić "' błąd z poniższej linii kodu: 'svm.pred <- predict (get (" svm.model "), testData [ , -17]) ', sugeruje pls. –