计算二次曲线中的平均值

Calculate mean values in a quadratic curve

这是一个示例数据

 sales <- function(price) { 100 - 0.5 * price }
 x <- 50:150
 x1 <- sales(x)
 revenue <- function(price) { price * sales(price) }
 y<- revenue(x)

 dat <- as.data.frame(cbind(y,x))
 plot(dat$y ~ dat$x)

我想计算 y:

的 2 个均值

(1) 平均值 1:y 的平均值从 x 的第一个值开始,直到 y 达到最大值(在中间)。

(2) 均值2:y的平均值从最大值到最小值在x的最后一个值。

我想我先把数据按x值递增整理一下

dat1 <- dat[order(dat$x),]

但是我被困在这里了。我不确定如何从这里计算这两个均值?

您可以使用split函数:

n <- 2
dfchunk <- split(dat1, factor(sort(rank(row.names(dat1))%%n)))

这将为您提供 2 个列表。

然后你可以得到它们每个的平均值:

avgYFirstHalf  <- mean(dfchunk$`0`$y)
avgYSecondHalf <- mean(dfchunk$`1`$y)

> avgYFirstHalf
# 4570.75
> avgYSecondHalf 
# 4579.167