计算二次曲线中的平均值

时间:2017-06-02 19:49:25

标签: r mean quadratic

这是一个示例数据

 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)

enter image description here

我想计算y的2种方法:

(1)平均值1:y的平均值x开始yy达到最大值(中间)。

(2)平均值2:从最大值到x的平均值,直到达到dat1 <- dat[order(dat$x),] 的最后值的最小值。

我以为我会先根据增加的x值来整理数据

if node_num == 16:

但我被困在这里。我不知道如何从这里计算出两种方法?

1 个答案:

答案 0 :(得分:0)

您可以使用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