在处理列表时,我注意到了一个我没想到的问题。
result5 <- vector("list",length(queryResults[[1]]))
for(i in 1:length(queryResults[[1]])){
id <- queryResults[[1]][i]
result5[[id]] <-getPrices(id)
}
问题是,在运行此代码而不是保持相同大小的结果(w / e queryResults [[1]]之后),它会上升到最后一个索引,在中间创建一堆空条目。
result5 current存储了许多int,double列表,如下所示: result5 [[指数(INT)]] [[行] [COL]
虽然它本身并没有太大问题,但我宁愿避免这样做,只是为了以后更容易进行尺寸计算。
为了澄清,id是一个整数。并且在给定的情况下,循环提供相同的性能,但比应用函数更方便。
答案 0 :(得分:1)
经过一些测试似乎最简单的方法是:
使用哈希包使用哈希转换它:
result6 <- hash(queryResults[[1]],lapply(queryResults[[1]],getPrices))
如果需要访问呼叫 result6 [[的toString(ID)]] 由于性能差异很小,尽管在代码中包含toString仍然相当烦人。
答案 1 :(得分:0)
目前尚不清楚你的问题究竟是什么,但从循环结构来判断,你可能想要
result5[[i]] <- getPrices(id)
而不是result5[[id]] <- getPrices(id)
。