Hai frainteso cosa fa load
. Ripristina un oggetto con lo stesso nome che aveva quando si save()
d it. Quello che stai vedendo in M
è il valore restituito della funzione load()
. Chiamare load()
ha l'ulteriore effetto collaterale di caricare l'oggetto con lo stesso nome con cui è stato salvato.
considerare:
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")
Ora guardate l'area di lavoro
> ls()
[1] "iris" "M" "model"
Quindi model
è stata restaurata come un effetto collaterale di load()
.
Da ?load
vediamo la ragione M
contiene il nome degli oggetti creati (e quindi salvato in origine)
Value:
A character vector of the names of objects created, invisibly.
Se si desidera ripristinare un oggetto con un nuovo nome, utilizzare saveRDS()
e readRDS()
:
saveRDS(model, "svm-model.rds")
newModel <- readRDS("svm-model.rds")
ls()
> ls()
[1] "iris" "M" "model" "newModel"
Se vuoi sapere di più su saveRDS()
e readRDS()
vedere la Guida relativa ?saveRDS()
e si potrebbe essere interessati a un blog post I wrote on this topic.
fonte
2014-06-12 23:03:00
Funziona, tranne che la funzione è chiamata non "loadRDS", ma "readRDS". Grazie! – user3276530
@ user3276530 Oops, riparato ora. Se il problema è stato risolto, considera di accettare una risposta facendo clic sul segno di spunta accanto ad essa. –
Ricevo 'nessun metodo applicabile per 'prevedere' applicato a un oggetto di classe" tune "' errore con la seguente riga di codice: 'svm.pred <- predicice (get (" svm.model "), testData [ , -17]), suggeriscono i pls. –