提问人:Victor Nielsen 提问时间:5/31/2023 最后编辑:Victor Nielsen 更新时间:5/31/2023 访问量:35
您如何使用您制作的函数来计算将输入更改 1% 对输出的影响百分比?[已结束]
How do you use a function you have made to calculate the % effect on the output of changing the input by 1%? [closed]
问:
如果函数是非线性的,则应该有一个计算百分比的起始值。
x <- -2
get_y <- function(x) {
y <- xˆ2
}
get_z <- function(x) {
z <- get_y(x) * x
}
get_result <- function(x) {
get_z(x)
}
我想得到一个值,该值表示如果我们将 x 从 -2 更改为 1%,z 会发生什么(以 % 为单位)。
我需要做什么才能得到它?get_result(x)
奖励:如何从这些值创建 x 和 z 值的数据帧?
答:
1赞
bouncyball
5/31/2023
#1
这应该有效。每个函数都需要返回一些东西,如果你将 x 更改为get_result
pct_change
get_y <- function(x) {
x ^ 2
}
get_z <- function(x) {
get_y(x) * x
}
get_result <- function(x, pct_change = 0.01) {
z_orig <- get_z(x)
z_new <- get_z((1 + pct_change)*x)
(z_new - z_orig)/z_orig
}
get_result_df <- function(x, pct_change){
data.frame(x = x,
z = get_z(x),
x_pct_change = pct_change,
z_pct_change = get_result(x, pct_change))
}
下面是一个示例:
get_result_df(x = -2, pct_change = 0.01)
# x z x_pct_change z_pct_change
# 1 -2 -8 0.01 0.030301
上一个:如何在后台作业后执行另一个作业?
下一个:R 中的嵌套函数
评论
y
get_z
y
get_y
z
z <- x ^ 2 * x
z <- x * 3
y
z
z <- x ^ 2 * x