可以把返回值转换成矩阵,利用concatMatrix()函数提高合并效率,代码如下所示:
def getTable(n){ t = table(1..2500 as id) t["org"] = rand(n,2500) t["orgdiv3"] = rand(n\3,2500) t["orgdiv6"] = rand(n\6,2500) t["orgdiv9"] = rand(n\9,2500) t.rename!(t.colNames()+string(n)) matriX = matrix(t) colName = t.colNames() return matriX,colName } timer{ result = ploop(getTable,0+(1..1000)*10 ) value,colName = result[,0],(result[,1]).flatten() output =concatMatrix(value).rename!(colName) tmp = table(output) }
耗时为300ms左右,比for循环块了30倍左右