gpt4 book ai didi

r - 如何计算有条件的平均值?

转载 作者:行者123 更新时间:2023-12-02 13:55:03 24 4
gpt4 key购买 nike

下面是生成可重现数据帧的脚本:

id <- c(1:20)
a <- as.numeric(round(runif(20,-40,40),2))
b <- as.numeric(round(a*1.4+60,2))
df <- as.data.frame(cbind(id, a, b))

我想计算“a”在不同条件下“b”的平均值。例如,当 -40 =< a < 0 时,“b”的平均值是多少;当 0=< a <=40 时,“b”的平均值是多少。

非常感谢!

最佳答案

这是一个快速的 data.table 解决方案(假设 coefa)

library(data.table)
setDT(df)[, .(MeanASmall = mean(b[-40 <= a & a < 0]),
MeanABig = mean(b[0 <= a & a <= 40]))]
# MeanASmall MeanABig
# 1: 33.96727 89.46

如果范围有限,您也可以使用基本 R 快速完成此操作

sapply(split(df, df$a >= 0), function(x) mean(x$b))
# FALSE TRUE
# 33.96727 89.46000

关于r - 如何计算有条件的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28493875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com