这是我在函数中调用 ffwhich 的代码:

library(ffbase)
rm(a,b)
test <- function(x) {
  a <- 1
  b <- 3
  ffwhich(x, x > a & x < b)
}
x <- ff(1:10)
test(x)
Error in eval(expr, envir, enclos) (from <text>#1) : object 'a' not found

traceback()
6: eval(expr, envir, enclos)
5: eval(e)
4: which(eval(e))
3: ffwhich.ff_vector(x, x > a & x < b)
2: ffwhich(x, x > a & x < b) at #4
1: test(x)

它可能是由懒惰的评估引起的? eval() 找不到在函数测试中有界的 a 和 b。如何在函数中使用 ffwhich?
  • R 2.15.2
  • ffbase 0.6-3
  • ff 2.2-10
  • 操作系统 opensuse 12.2 64 位
  • 最佳答案

    是的,它看起来像 Arun 所指出的 eval 问题。在使用 ffwhich 时,我通常使用以下内容,这类似于 eval。

    library(ffbase)
    rm(a,b)
    test <- function(x) {
      a <- 1
      b <- 3
      idx <- x > a & x < b
      idx <- ffwhich(idx, idx == TRUE)
      idx
    }
    x <- ff(1:10)
    test(x)
    

    关于R ff ffbase ff 函数调用中的哪个错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14065551/

    10-13 08:59