R中的曲线函数如何工作? - 曲线功能示例

时间:2015-01-03 16:01:50

标签: r plot arguments curve

以下代码如何运作?当我阅读R ?curve的帮助热线时,我得到了一个例子。但我还没有理解这一点。

  for(ll in c("", "x", "y", "xy"))
     curve(log(1+x), 1, 100, log = ll,
        sub = paste("log= '", ll, "'", sep = ""))

特别是,我习惯将数值作为for-loop as,

中的参数
  for(ll in 1:10)

但是下面的命令是什么:

  for(ll in c("","x","y","xy"))

c("","x","y","xy")看起来像一个字符串向量? c("","x","y","xy")如何在curve内工作 功能为log(1+x) [这里的x是什么?字符串“x”?在c("","x","y","xy")]和log=ll

1 个答案:

答案 0 :(得分:2)

显然,堆栈溢出没有关于R中curve函数如何工作的答案,特别是关于log参数的答案,所以这可能是一个很好的机会深入研究它(我喜欢btw的问题:

首先是简单的部分:

c("","x","y","xy")是一个字符串向量,或者更正式地是一个字符向量。

for(ll in c("","x","y","xy"))将启动4次迭代的循环,每次ll将分别为'','x','y','xy'。遗憾的是,构建此示例的方式只会显示最后一个用于ll = 'xy'的内容。

让我们深入了解curve函数的源代码来回答其余部分:

  • 首先x代表log(1+x)

log(1+x)是一个功能。 x表示在以下部分(来自源代码)的curve函数内创建的数字向量:

 x <- exp(seq.int(log(from), log(to), length.out = n)) #if the log argument is 'x' or
 x <- seq.int(from, to, length.out = n)               #if the log argument is not 'x' 
 #in  our case from and to are 1 and 100 respectively 

只要n参数是默认值,x向量将包含101个元素。显然x中的log(1+x)log参数中的'x'完全不同。

至于y,它总是被创建为(来自源代码):

 y <- eval(expr, envir = ll, enclos = parent.frame()) #where expr is in this case log(1+x), the others are not important to analyse now.
 #i.e. you get a y value for each x value on the x vector which was calculated just previously
  • 其次,log论证的目的是什么?

log参数决定将记录xy轴中的哪一个。如果'x'log参数,则x轴,如果'y'log参数,则为y轴,如果'xy'为{{1},则为轴如果log参数为log,则参数和无对数比例。

这里需要提到的是x或y轴的日志是在''函数的plot函数中计算的,即curve函数只是一个curve函数的包装器。

如上所述,这就是为什么如果plot参数为'x'(见上文),则计算向量x的对数值的指数,以便它们将返回到log内的记录值。 {1}}功能。

P.S。在控制台上输入plot可以看到curve函数的源代码。

我希望现在有点意义!