所以我有一个错误...
f <- function(x){return(1)}
curve(f(x),0,100,xname="x")
Error in curve(f(x), 0, 100, xname = "x") :
'expr' did not evaluate to an object of length 'n'
考虑到这很奇怪
F <- function(x){return(0*x+1)}
curve(F(x),0,100,xname="x")
工作得很好......这让我想到了 R 如何处理 data.frame()s。
a <- data.frame(1,2,3)
f(a)
# [1] 1
F(a)
# X1 X2 X3
# 1 1 1 1
这意味着函数 Vectorize() 将解决我的问题。无论如何,这是 R 做出的隐含决定的一个尖锐例子,这会导致不一致的行为。