我正在处理一个大数据,我把它分成块,所以它可以由 ram 管理,像这样:(这是一个我有更多块的例子)
var_1<-all_modell [c(1:150000) ,]; save(var_1,file="~/var_1.Rdata");rm(var_1);
var_2<-all_modell [c(150001:300000),]; save(var_2,file="~/var_2.Rdata");rm(var_2);
var_3<-all_modell [c(300001:450000),]; save(var_3,file="~/var_3.Rdata");rm(var_3);
这个想法是每次迭代都会加载一个块,用于预测然后擦除,因此 ram 可以自由处理下一个块:
for (i in 1:n_chunks)
{
name<-sprintf('var_%i',i); path<-sprintf('~/var_%i.Rdata',i)
load(path)
predicted <- predict(Model, newdata =name, type = "prob") #here is the problem
value <- as.numeric(lapply(predicted,"[[",2))
namef <- sprintf('~/predicted%i.Rdata',i)
save(value,file=namef)
rm(list= ls()[!(ls()%in% Model)])
}
我想知道的是如何通过newdata=name
名称变化的地方......我也试过这个,但它没有用:
predicted <- predict(Model, parse(text=sprintf(sprintf('newdata=var_%i',i))), type="prob")