gpt4 book ai didi

r - 如何检查R中的函数是否为常数函数?

转载 作者:行者123 更新时间:2023-12-03 14:40:41 26 4
gpt4 key购买 nike

一个 R 函数被传递给我,它在实线的某个区间上定义并返回一个数值。
有没有办法检查函数是否为常量?

示例函数:

f1<-function(x) {11}
f2<-function(x) {x+2}
f3<-function(x) {1+1}
f4<-function(x) {return(3)}

我正在寻找一个测试,它会说 f1、f3、f4 是常数函数,但 f2 不是。有任何想法吗?

编辑:

Frank's 和 Gregor's( 编辑: 和 Michael Lawrence 的第二个解决方案)下面的解决方案都适用于上面给出的所有 4 个测试用例(Marat 和 Michael 的不适用于所有 4 个案例)。所以已经有了解决方案。但是,如果您能找到一个解决方案,该解决方案也可以为以下 3 个测试函数提供正确答案,则可以获得额外的奖励积分:
f5 <- function(x) ifelse(x == 5.46512616432116, 0, 1)
f6 <- function(x) ifelse(x == 5.46512616432116, 0, 0)
f7 <- function(x) {x - x}

最佳答案

试试 functionBody :

> is.numeric(functionBody(f1)[[2]])
[1] TRUE

> is.numeric(functionBody(f2)[[2]])
[1] FALSE

关于r - 如何检查R中的函数是否为常数函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30379424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com