我将两个随机林对象保存为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"
答案 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)))