gpt4 book ai didi

r - 计算一组动态列的平均值和 STD 子集

转载 作者:行者123 更新时间:2023-12-02 01:13:30 26 4
gpt4 key购买 nike

计算一组动态列的均值和 STD 子集。

举个例子:

sales <- data.frame(ItemID=c("1A","1B","1C"),
Jul=c(0,1,5),
Aug=c(1,2,6),
Sep=c(0,3,7),
Oct=c(1,4,8),
Nov=c(1,4,8),
Dec=c(1,4,8),
Jan=c(1,4,8),
Nmon=c(7,4,6))

以上测试数据给出下表。我需要的是根据“Nmon”列中的值在每一行上应用函数。

  ItemID Jul Aug Sep Oct Nov Dec Jan Nmon
1 1A 0 1 0 1 1 1 1 7
2 1B 1 2 3 4 4 4 4 4
3 1C 5 6 7 8 8 8 8 6

例如第一条记录的 Nmon 值为 7。然后我需要计算从七月到一月的所有值的平均值和标准差(平均值 = 0.71,标准差 = 0.49)。

如果第二条记录的 Nmon 值为 4,则应仅计算从 10 月到 1 月范围内的月份的平均值和标准差(平均值 = 4,标准差 = 0)

这里的月数会增加或减少,但第一列(项目编号)和最后一列(Nmon)将保持不变。我有大量项目数据集,需要一种有效的方法来进行此计算。

最佳答案

也许这有帮助

 t(apply(sales[-1], 1, function(x) {i1 <- length(x)
x2 <- x[(i1 -x[i1]):(i1-1)]
c(mean = mean(x2), sd = sd(x2))}))
# mean sd
#[1,] 0.7142857 0.48795
#[2,] 4.0000000 0.00000
#[3,] 7.5000000 0.83666

关于r - 计算一组动态列的平均值和 STD 子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43832543/

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