我在R中搜索一种方法,从a
到b
pfA <- function(x) { return ( 123 * x ) ; }
p_a = Vectorize(pfA, "x")
plot(0,0, col="purple", type="l", xlim=c(-5,5000), ylim=c(-5,5000))
curve (p_a(x), col="red", add=TRUE)
print_values((p_a(x),a,b)
其中print_values将返回一个列表(或两个数组),包含x
到a
范围内的所有b
以及函数的相应返回值
1 : 123
2 : 246
3 : 369
...
答案 0 :(得分:2)
我修改了curve
函数的代码以创建myfun
。
myfun <-
function (expr, from, to)
{
sexpr <- substitute(expr)
x <- seq.int(from, to)
ll <- list(x = x)
y <- eval(sexpr, envir = ll)
cbind(x = ll[["x"]], y)
}
使用示例:
a <- -5
b <- 5
myfun(p_a(x), a, b)
# x y
# [1,] -5 -615
# [2,] -4 -492
# [3,] -3 -369
# [4,] -2 -246
# [5,] -1 -123
# [6,] 0 0
# [7,] 1 123
# [8,] 2 246
# [9,] 3 369
# [10,] 4 492
# [11,] 5 615