当前位置: 首页 > 知识库问答 >
问题:

计算平均值和 STD 子设置一组动态列

章兴发
2023-03-14

计算一组动态列的Mean和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。然后我需要计算从7月到1月所有值的均值和均方差(均值=0.71,std=0.49)。

在Nmon值为4的第二个记录的情况下,平均值和标准偏差应仅针对从10月到1月的月份进行计算(平均值= 4,标准差= 0)

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

共有2个答案

席弘图
2023-03-14

这是另一个基于R的解决方案:

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))
my.m.sd <- function(i) {
  n <- sales$Nmon[i]
  x <- unlist(sales[i, seq(to=8, length.out = n)])
  c(m=mean(x), s=sd(x))
}
sapply(1:3, my.m.sd)
# > sapply(1:3, my.m.sd)
#        [,1] [,2]    [,3]
# m 0.7142857    4 7.50000
# s 0.4879500    0 0.83666
宰父玄天
2023-03-14

也许这有帮助

 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
 类似资料:
  • 问题内容: 我正在尝试使用下面的代码来计算用户输入的一组值的平均值,并将其显示在中,但它无法正常工作。假设用户输入7、4和5,该程序在应显示5.3时显示平均值。 代码有什么问题? 问题答案: 当您拥有增强的for循环时,为什么还要对索引使用笨拙的for循环?

  • 我试图做以下java分配和每件事似乎工作正常,除了当我把一个数字 谢谢 赋值:创建一个询问考试结果并计算成绩平均值的程序。成绩是4到10之间的浮点数。程序要求成绩,直到键入负数。如果用户给出的分数不是4到10之间的数字,则文本“无效成绩!”将在屏幕上打印,程序要求另一个分数。最后,程序在屏幕上打印输入的成绩数及其平均值,如示例打印所示。如果没有输入成绩,通知“您没有输入任何成绩。”是屏幕上唯一打印

  • 问题内容: 编辑:我已经写了平均的代码,但我不知道如何使它也使用从我的args.length而不是数组的整数 我需要编写一个Java程序,该程序可以计算:1.读入的整数数2.平均值-不必是整数! 注意!我不想从数组中计算平均值,但是要在args中计算整数。 目前我已经写了这个: 谁能指导我正确的方向?还是举个例子,以书面形式指导我塑造这段代码? 提前致谢 问题答案: 只需对您的代码进行一些小的修改

  • 问题内容: 我有一个表,其中包含一列要从中提取信息的JSON数据。具体来说,我只想获取平均值。 我所拥有的例子: 我想要的例子: 关于如何使该查询正常工作的任何建议? 问题答案: 您的json数组被弄乱了,就像@poszcommented一样。必须是: 您的查询也以多种方式扭曲。在第 9.3 页中将像这样工作: SQL提琴。 在即将到来的pg 9.4中, 我们可以使用新的来简化操作(转换中也不太容

  • 我试图使用下面的代码来计算用户输入的一组值的平均值,并将其显示在中,但它不能正常工作。例如,用户输入7、4和5,程序显示1作为平均值,而它应该显示5.3

  • 我在添加数组的所有元素以及求取它们的平均值时遇到了问题。我将如何做到这一点并用我当前拥有的代码实现它?这些元素应该定义如下。