函数的奇怪结果

时间:2020-07-02 06:31:14

标签: r

我认为我的错误是对R中函数的操作方式有误解,但我确实担心这可能会给我带来一些奇怪的结果。

如果我在函数外部声明了一个参数,它将覆盖函数调用中声明的所有参数。

x<- 6

example<- function(...){
print(x^2)
}

example()

返回36。我对此很好。

但是,如果我再次运行该函数并声明该变量,它将被忽略。

example(x =5)

仍然返回36。

我可以理解正在发生的事情,但是我真的不明白为什么。在这种情况下是否正在使用...不良做法?

如果我的功能是

example<- function(x){
print(x^2)
}

有效。

1 个答案:

答案 0 :(得分:1)

理想情况下,您应该写的是:

CHECK (substr(image, 1, 8) = BYTEA '\x89504E470D0A1A0A')

example<- function(...){ x <- c(...) x^2 } example(5) #[1] 25 example(5, 6) #[1] 25 36 将返回空值,因为您没有传递任何内容。不要依赖全局变量在函数中求值。您应该在函数中显式传递变量。