Bạn hiểu sai những gì load
thực hiện. Nó khôi phục một đối tượng trùng tên mà nó có khi bạn save()
d nó. Những gì bạn đang nhìn thấy trong M
là giá trị trả về của hàm load()
. Gọi load()
có tác dụng phụ phụ của việc tải đối tượng trở lại dưới cùng một tên mà nó đã được lưu với.
xem xét:
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")
Bây giờ nhìn vào không gian làm việc
> ls()
[1] "iris" "M" "model"
Do đó model
được khôi phục như một tác dụng phụ của load()
.
Từ ?load
chúng ta thấy lý do M
chứa tên của các đối tượng được tạo ra (và do đó lưu ban)
Value:
A character vector of the names of objects created, invisibly.
Nếu bạn muốn khôi phục một đối tượng với một tên mới, sử dụng saveRDS()
và readRDS()
:
saveRDS(model, "svm-model.rds")
newModel <- readRDS("svm-model.rds")
ls()
> ls()
[1] "iris" "M" "model" "newModel"
Nếu bạn muốn biết thêm về saveRDS()
và readRDS()
, hãy xem trợ giúp có liên quan ?saveRDS()
và bạn có thể quan tâm đến blog post I wrote on this topic.
Nguồn
2014-06-12 23:03:00
Nó hoạt động, ngoại trừ chức năng được gọi là không 'loadRDS', nhưng 'readRDS'. Cảm ơn! – user3276530
@ user3276530 Rất tiếc, đã được khắc phục ngay bây giờ. Nếu vấn đề của bạn đã được giải quyết, hãy xem xét chấp nhận một câu trả lời bằng cách nhấp vào dấu kiểm bên cạnh câu trả lời. –
Tôi nhận được 'không áp dụng phương pháp 'dự đoán' được áp dụng cho một đối tượng của lớp" điều chỉnh "lỗi với dòng dưới đây của mã:' svm.pred <- predict (get ("svm.model"), testData [ , -17]) ', xin đề nghị. –