大多数循环代码看起来像这样
retVal=NULL
for i {
for j {
result <- *some function of vector[i] and vector[j]*
retVal = rbind(retVal,result)
}
}
由于这是如此常见,是否有一种系统的方式来翻译这个成语?
这可以扩展到大多数循环吗?
答案 0 :(得分:4)
plyr包提供了一组通用工具,用于在处理大数据结构时替换循环结构,将其分解为多个部分,独立处理每个部分,然后将结果重新组合在一起。
答案 1 :(得分:2)
第一个目标是获取工作代码。你在那里。然后尝试一些简单的选择。例如。
retVal <- matrix(NA, ni, nj) # assuming your result is scalar
for (i in 1:ni)
for (j in 1:nj)
retVal[i][j] <- *some function of yours*
由于你没有为每个i,j组合重新分配内存,已经运行多。
至于循环,您可以先用apply
系列中的内容替换内循环。我不知道回答你的问题的一般内容 - 它取决于你的函数采用什么参数以及它产生什么类型的返回对象。