- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。
此问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-topic在这里,这个问题的解决方式不太可能帮助 future 的读者。
2个月前关闭。
Improve this question
这是我在 StackOverflow 上的第一个问题,如果我的某些程序/发布标准不正确,请多多包涵。
我的目标是根据他们的测试和测验分数为数据集中的每个学生分配一个加权平均值。测试占该加权平均值的 90%,而测验占剩余的 10%。另外需要注意的是,如果测试分数低于 60,则该分数会额外获得 5 分(不更改原始测试分数)。这整个过程将使用 VBA 编程宏来完成。
我遇到的问题是计算的平均值是错误的。 (见图,有些分数超过 100,这应该是不可能的)我试图通过查看单个测试和测验的平均值来隔离错误,到目前为止,我认为错误在于测试平均值的计算,但我我不太确定到底是什么问题。即使我删除了解释“曲线”的 if 语句,我的分数仍然超过 100。这让我认为我计算平均值的方式存在问题。我在下面提供了我的宏的代码。如果我编写此宏的方式有任何其他问题,请告诉我我还是 VBA 新手。
Sub SetTwo()
Dim gradeAvg As Integer
Dim testAvg As Double
Dim quizAvg As Double
For i = 2 To 104
gradeAvg = 0
testAvg = 0
quizAvg = 0
For j = 6 To 13
If j <= 8 Then
If Worksheets("Set2").Cells(i, j) < 60 Then
testAvg = testAvg + Worksheets("Set2").Cells(i, j) + 5
Else
testAvg = testAvg + Worksheets("Set2").Cells(i, j)
End If
Else
quizAvg = quizAvg + Worksheets("Set2").Cells(i, j)
End If
Next j
testAvg = (testAvg / 300) * 90
quizAvg = (quizAvg / 100) * 10
gradeAvg = testAvg + quizAvg
Worksheets("Set2").Cells(i, 13) = gradeAvg
Next i
End Sub
Here is a sample of the dataset, with the averages calculated incorrectly
最佳答案
这有点尴尬。在多玩了一些代码之后,我发现了我的问题。看来我的内部 for 循环的界限是错误的。我包括了包含“平均值”值的单元格,它最终扭曲了我的计算并导致我的计算值超过 100。
对于那些感兴趣的人,我在下面包含了正确宏的代码:
Sub SetTwo()
Dim gradeAvg As Integer
Dim testAvg As Double
Dim quizAvg As Double
For i = 2 To 104
gradeAvg = 0
testAvg = 0
quizAvg = 0
For j = 6 To 12
If j < 9 Then
If Worksheets("Set2").Cells(i, j) < 60 Then
testAvg = testAvg + Worksheets("Set2").Cells(i, j) + 5
Else
testAvg = testAvg + Worksheets("Set2").Cells(i, j)
End If
Else
quizAvg = quizAvg + Worksheets("Set2").Cells(i, j)
End If
Next j
testAvg = (testAvg / 300) * 90
quizAvg = (quizAvg / 100) * 10
gradeAvg = testAvg + quizAvg
Worksheets("Set2").Cells(i, 13) = gradeAvg
Next i
End Sub
关于excel - 为什么我的代码为我的加权平均计算返回不正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72004240/
我需要更改利率列的总数。我的意思是,比率列中的总数是汇总,我需要加权平均值而不是总数。例如: 数量…………率 450000.......8.75 390000.......8 15000.......
我有一个包含林分编号、树种、高度和体积的数据框: import pandas as pd df=pd.DataFrame.from_items([('STAND_ID',[1,1,2,3,3,3]),
使用 NumPy 的加权平均值,我希望一个具有无限权重的元素支配结果,但它返回 NaN, >>> np.average([1,2], weights=[np.inf, 1]) nan 这是故意设计的吗
我经常在 Python 列表中添加/删除元组,并且对加权平均值(而不是列表本身)感兴趣。由于与其余部分相比,这部分在计算上非常昂贵,因此我想对其进行优化。跟踪加权平均值的最佳方法是什么?我可以想到两种
创建一个 lambda 函数来计算加权平均值并将其发送到字典。 wm = lambda x: np.average(x, weights=df.loc[x.index, 'WEIGHTS']) # D
我是一名优秀的程序员,十分优秀!