如何比较功能? [英] How to compare functions?

查看:92
本文介绍了如何比较功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有方法可以比较两个函数对象是否相同?

  m < - 均值
m ==表示##不起作用

##这似乎不是正确的方式:
functionBody(mean)== functionBody(m)

编辑:一些更多细节。我有一个函数带有两个参数(一个矩阵和一个用户定义的函数,这个函数是按列应用的,例如mean,median,...)。如果函数是 mean 我想用 colMean 来代替(以节省一些运行时间)。

  foo < - 函数(m,fun){
#if(fun == mean){
#return colMeans(M));
#} else {
return(apply(m,2,fun));


$ / code $ / pre

解决方案

您可以使用相同

 相同(m,平均数)


Is there a way to compare whether two function objects are the same?

m <- mean
m == mean ## don't work

## this seems not to be the correct way:
functionBody(mean)==functionBody(m)

EDIT: Some more details. I have a function with two arguments (a matrix and a user-defined function which is applied columnwise, e.g. mean, median, ...). If the function is mean I want to use colMean instead (to save some running time).

foo <- function(m, fun) {
  #if (fun==mean) {
  #  return(colMeans(m));
  #} else {
    return(apply(m, 2, fun));
  #}
}

解决方案

You can use identical:

identical(m,mean)

这篇关于如何比较功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆