首先声明一个函数,然后在R中定义它

时间:2014-04-08 15:56:49

标签: r function

我是R的新手。是否有可能首先声明一个函数然后在RStudio中的R中定义它?

函数定义很长,我想声明它然后定义它:

f2 <- function()

fn <- function(a,b, c, d, q1)
{
    print(a)
    print(b)
    print(c)
    print(d)
    print(q1)
    f2()   # originally, it is named as f1
}

x <- 6
y <- 10
z <- 58
v <- 20 
v1 <- 68 
fn(x,y , c=z, d=v, q1=v1)
f2 <- function()
{
   print("here is f2 definition")
}

我已将函数名从f1更改为f2,但是,在调试器中,源查看器仍会跳转到f1(),为什么?

并且,允许以这种方式定义f2?

谢谢!

1 个答案:

答案 0 :(得分:1)

这就是我运行代码的原因:

> f2 <- function()
+ 
+ fn <- function(a,b, c, d, q1)
+ {
+     print(a)
+     print(b)
+     print(c)
+     print(d)
+     print(q1)
+     f2()   # originally, it is named as f1
+ }
> 
> f2()
> x <- 6
> y <- 10
> z <- 58
> v <- 20 
> v1 <- 68 
> fn(x,y , c=z, d=v, q1=v1)
Error: could not find function "fn"

您的意思是在fn内定义f2吗?如果是,那么您的全球环境中没有fn,尝试fn(x,y , c=z, d=v, q1=v1)毫无意义。如果您不理解为什么fnf2内定义并且无法从全球环境中访问,那么我认为最好的建议可能是首先得到一本关于R的好书。你想实现吗?