随机森林对象未加载

时间:2016-02-19 10:55:21

标签: r class load random-forest

我将两个随机林对象保存为rda文件。当我加载它们时 - 一个加载为字符,另一个加载为randomForest对象!有人可以解释一下吗?

这是我的代码段:

fit1 <- load("rfModel_pw2.rda")
fit2 <- load("rfModel_pw3.rda")
Pred1 <- predict(get(fit1), test, "prob")
#Error in get(fit1) : invalid first argument
Pred2 <- predict(get(fit2), test, "prob")
class(fit1)
#[1] "randomForest.formula" "randomForest" 
> class(fit2)
#[1] "character"

1 个答案:

答案 0 :(得分:0)

load()自动将.rda文件中的对象放在全局环境中,并仅返回已加载对象的字符名称。而不是使用get([name])只需在保存和加载之后使用相同的对象名称,如示例中所示。否则,如果您希望loader函数返回加载的对象,则可以将load() / save()替换为saveRDS() / readRDS()

library(randomForest)
X = replicate(2,rnorm(1000))
y = apply(X,1,sum) 
rf = randomForest(X,y)
save(rf,file="./rf.rda")

rm(list=ls())
load(file="./rf.rda") #object is restored in global enviroment by former name
predict(rf,replicate(2,rnorm(1000)))