2

我正在生成一个稀疏向量长度> 50,000。我在 for 循环中生成它。我想知道是否有一种有效的方法来存储零?

基本上代码看起来像

score = c()
for (i in 1:length(someList)) {
score[i] = getScore(input[i], other_inputs)
if (score[i] == numeric(0))
score[i] = 0    ###I would want to do something about the zeros
}
4

1 回答 1

1

此代码将不起作用。您应该在循环之前预先分配分数向量大小。预分配也会创建一个带零的向量。因此,无需分配零值,您只能从getScore函数中分配数字结果。

N <- length(someList)  ## create a vector with zeros
score = vector('numeric',N)
for (i in 1:N) {
  ss <- getScore(input[i], other_inputs)
  if (length(ss)!=0)
    score[i] <- ss  
}
于 2013-06-18T19:33:04.443 回答