繁体   English   中英

我如何有一个函数将 r 中的 2 个函数相乘?

[英]How do I have a function that multiplies 2 functions in r?

w         <- -1
pqxf      <- function(y)(1)*(y) # replace p with price of y
pqyf      <- function(x)(w*x)-(w*16) # -1.25 is the wage rate
utilityf  <- function(x)(80)*(1/(x)) # the utility function C,l
hours     <- c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)

我想弄清楚如何乘以 pqxf 和 pqyf,使utilityf

在这里计算出utilityf应该是什么样子有点困难,所以让我们使用一个更简单的例子。 我们有两个函数square()inverse() ,我们想做一个计算,涉及对一组数字a进行平方,然后乘以另一组数字b的倒数。 首先让我们创建平方和反函数:

square <- function(a) {
    a^2
}

inverse <- function(b) {
    1 / b
}

这些只是函数,在我们调用它们并将输入传递它们之前,它们不会做任何事情。

这是您在此问题的先前版本中尝试执行的操作:

output_bad <- function(a, b) {
    square * inverse
}

这不起作用,因为我们根本不调用平方和反函数,我们不给它们输入。 所以我们最终试图将一个function对象乘以另一个function对象。

这是正确的方法:

output <- function(a, b) {
    square(a) * inverse(b)
}

我们提供ab作为output函数的输入,并对它们调用 square 和 inverse 以从这些函数中获得单独的结果,然后我们可以将它们相乘。 现在我们可以将ab不同值传递给output

> output(c(1, 2, 3), c(4, 5, 6))
# [1] 0.25 0.80 1.50

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM