我有一个大列,我需要一个列表中每五个/五个值的中位数。我有excel和SPSS。我怎样才能不手动地完成这个任务呢?600个值。计算时,我应该有一个120中值的列。
发布于 2018-04-24 13:23:31
如果你的数据在A栏中,中位数的结果将记录在c栏中。
Sub test()
Dim rngDB As Range, rng As Range
Dim vR() As Variant
Dim i As Long, n As Long
Set rngDB = Range("a1", Range("a" & Rows.Count).End(xlUp))
For i = 1 To rngDB.Rows.Count Step 5
Set rng = Range("a" & i).Resize(5)
n = n + 1
ReDim Preserve vR(1 To n)
vR(n) = WorksheetFunction.Median(rng)
Next i
Range("c1").Resize(n) = WorksheetFunction.Transpose(vR)
End Sub发布于 2018-04-24 14:26:36
这在spss中更容易实现。以下语法将创建一个具有计算中介的新数据集(该数据集包含一个名为origVar的变量中的原始数据):
compute grp=trunc(($casenum-1)/5)+1.
dataset declare medians.
aggregate /out='medians'/break=grp /groupMedian=MEDIAN(origVar).https://stackoverflow.com/questions/50002344
复制相似问题