我有一个大栏目,我需要列表中每五个/五个值的中位数。我有excel和SPSS。如果不手动完成,我怎么能这样做? 600个值。计算时,我应该有一个120中值的列。
答案 0 :(得分:2)
如果您的数据在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
答案 1 :(得分:1)
这在spss中更容易做到。以下语法将使用计算的中位数创建一个新数据集(这将原始数据放在名为origVar的变量中):
compute grp=trunc(($casenum-1)/5)+1.
dataset declare medians.
aggregate /out='medians'/break=grp /groupMedian=MEDIAN(origVar).