这是一个示例数据
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
到y
达到最大值(中间)。
(2)平均值2:从最大值到x
的平均值,直到达到dat1 <- dat[order(dat$x),]
的最后值的最小值。
我以为我会先根据增加的x值来整理数据
if node_num == 16:
但我被困在这里。我不知道如何从这里计算出两种方法?
答案 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