Sie missverstehen, was load
tut. Es stellt ein Objekt auf den gleichen Namen wieder her, den es hatte, als Sie es save()
d it. Was Sie in M
sehen, ist der Rückgabewert der load()
Funktion. Der Aufruf von load()
hat den zusätzlichen Nebeneffekt, das Objekt unter dem gleichen Namen zurück zu laden, mit dem es gespeichert wurde.
Bedenken Sie:
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")
Nun ein Blick auf den Arbeitsbereich
> ls()
[1] "iris" "M" "model"
Daher model
als Nebenwirkung von load()
wiederhergestellt wurde.
Von ?load
sehen wir den Grund M
den Namen der Objekte enthält erstellt (und ursprünglich damit gespeichert)
Value:
A character vector of the names of objects created, invisibly.
Wenn Sie ein Objekt in einen neuen Namen wiederherstellen möchten, verwenden Sie saveRDS()
und readRDS()
:
saveRDS(model, "svm-model.rds")
newModel <- readRDS("svm-model.rds")
ls()
> ls()
[1] "iris" "M" "model" "newModel"
Wenn Sie mehr über saveRDS()
und readRDS()
wissen, finden Sie in der entsprechenden Hilfe ?saveRDS()
und Sie könnten in einem 01 interessiert sein.
Es funktioniert, außer die Funktion heißt nicht 'loadRDS', sondern 'readRDS'. Vielen Dank! – user3276530
@ user3276530 Hoppla, jetzt behoben. Wenn Ihr Problem gelöst wurde, können Sie eine der Antworten akzeptieren, indem Sie auf das Häkchen daneben klicken. –
Ich bekomme 'keine anwendbare Methode für 'vorhersagen' angewendet auf ein Objekt der Klasse" tune "' Fehler mit der folgenden Codezeile: 'svm.pred <- predict (get (" svm.model "), testData [ , -17]) ', schlagen Sie vor. –