计算二次曲线中的平均值
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
这是一个示例数据
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
:
(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