所以我有一组值,需要找到最低或较高的四分位数。我知道有一个函数可以找到中值,但是深入研究的最佳方法是什么?
答案 0 :(得分:0)
您拥有多少个值?如果没有太多,您可以编写自己的函数。这就是我下面所做的。它将对值进行排序,然后沿相关百分比计数并报告回来,并在必要时进行插值。该代码是完整的模型,因此您可以尝试一下。
turtles-own [test-value]
to setup
clear-all
create-turtles 150 [set test-value random-float 1]
type "20%ile is " print calc-pct 20 [test-value] of turtles
end
to-report calc-pct [ #pct #vals ]
let #listvals sort #vals
let #pct-position #pct / 100 * length #vals
; find the ranks and values on either side of the desired percentile
let #low-rank floor #pct-position
let #low-val item #low-rank #listvals
let #high-rank ceiling #pct-position
let #high-val item #high-rank #listvals
; interpolate
ifelse #high-rank = #low-rank
[ report #low-val ]
[ report #low-val + ((#pct-position - #low-rank) / (#high-rank - #low-rank)) * (#high-val - #low-val) ]
end
如果您有很多值,这将很慢。在这种情况下,最好使用R
扩展名并在R中进行计算。