理解并修改以前的R代码

时间:2017-06-09 08:02:54

标签: r

我是R环境的新手,希望了解另一个帖子中发布的代码。

Integrating over a PCHIP Function

1 > library(pracma)
2 > xs <- linspace(0, pi, 10)
3 > ys <- sin(xs)
4 > pchipfun <- function(xi, yi) function(x) pchip(xi, yi, x)
5 > f <- pchipfun(xs, ys)
6 > integrate(f, 0, pi)

我的问题如下:

  1. 第5行在第4行调用函数,但这不是传递x值。那么第4行如何取x值?

  2. 在上面的设置中,我想修改一下,如果x在pi / 6和&amp;之间。 pi / 4,函数应返回0,否则返回计算值。

  3. 提前致谢。

2 个答案:

答案 0 :(得分:0)

对于问题1,您可以阅读 Currying

https://en.wikipedia.org/wiki/Currying

对于问题2,也许您可​​以先粘贴您尝试过的内容。

答案 1 :(得分:0)

我正在尝试以下代码

X<-c(-3,-1,2,5,7,10,13,15,18,21,23)*91/4
Y<-c(0,0,100,200,200,100,0,0,100,200,200)
myFun <- function(xi, yi) function(x){if (x<100) return (0); pchip(xi, yi, x)}
pcFun <-myFun(X ,Y)
curve(pcFun, 0,300)

给我错误:

  

曲线错误(pcFun,0,300):'expr'没有评估为   长度为'n'的对象另外:警告消息:在if(x <100)中   return(0):条件长度> 1,只有第一个元素   将被使用