我一直在尝试解决我遇到的几个列表问题。
我正在为作业分配自己的交叉验证功能。现在,我已经生成了两个列表:lm类元素列表和原始数据重采样列表。
我使用了称为cvtest的建模程序包的crossv_kfold()函数创建了5次训练和5次测试重采样。
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
def req = '''{
"langauageCode": "en-US",
"Test": [{
"_modificationTypeCode": "added",
"allocationTypeCode": "3",
"code": "Test1"
}]
}'''
def slurped = new JsonSlurper().parseText(req)
slurped.Test[0].code = 'Test2'
println JsonOutput.prettyPrint(JsonOutput.toJson(slurped))
我使用capptest的lapply训练集创建了5个线性模型的列表
cvtest<-crossv_kfold(MyDataSet,5)
现在,我正在尝试结合其训练集来计算每个线性模型的RSME。
我试图找出一种方法来操纵lapply或sapply来获取cvtest的元素1,lmodtest的元素1,应用rmse函数并继续浏览两个列表。
基本上我想得到这个结果:
linModFunc<-function(data,form){
lm(form,data)
}
lmodtest<-lapply(cvtest$train,linModFunc,form=formula)
但确实有效。 有这样做的好方法吗?我想我可以使用for循环来做到这一点,但我希望找到一个更优雅的解决方案。