建立具有3个变量的图

问题描述 投票:0回答:1

w = -1.25

pqxf utilityf <- function(x, y, w) { pqyf(x) * pqxf(y)* w} # the utility function C,lhours <- c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)

#functions are turned into data frames

pqy <- data.frame("consumption" = pqyf(c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)))pqx <- data.frame("leisure" = pqxf(c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)))utility <- data.frame("utility" = utilityf(c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)))

[当我尝试运行此程序时,我收到一个错误:

Error in pqxf(y) : argument "y" is missing, with no default

如何定义y?

r
1个回答
0
投票

您的问题是有关在R中定义和调用函数的。

您定义函数utilityf以接受三个参数x,y,w。然后在函数内部使用这些变量来调用其他函数。由于您没有在utilityf的声明中定义默认值,因此需要将值传递给函数。您在pqxf中呼叫的utilityf如何知道y是什么?

您在脚本中声明了w。但是,utilityf 不知道您要它使用w=-1.25

尝试以下操作:

w = -1.25
x = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)
y = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)

pqxf      <- function(y){(1)*(y)}
pqyf      <- function(x){(w * 16)-(w * x)}
utilityf  <- function(x, y, w) { pqyf(x) * pqxf(y)* w}

utility <- data.frame("utility" = utilityf(x,y,w)

或替代:

w = -1.25
x = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)
y = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20)

pqxf      <- function(y){(1)*(y)}
pqyf      <- function(x){(w * 16)-(w * x)}
utilityf  <- function(x, y) { pqyf(x) * pqxf(y)* w}

utility <- data.frame("utility" = utilityf(x,y)

在最后一种情况下,函数utilityf采用w的“全局”值。在这两种情况下,w保持不变,因为您无需在任何地方更改该值。

© www.soinside.com 2019 - 2024. All rights reserved.