Geniş bir çift dizim var ve dizinin 75 ve 90 persentil değerlerini hesaplamam gerekiyor. Bunu bir işlev üzerinden yapmanın en etkili yolu nedir?PHP'deki iki kattan oluşan bir diziden nth yüzdesini nasıl hesaplayabilirim?
6
A
cevap
13
İstatistiklerden beri bir süredir bu yüzden burada olabilirim - ama burada bir çatlak var.
function get_percentile($percentile, $array) {
sort($array);
$index = ($percentile/100) * count($array);
if (floor($index) == $index) {
$result = ($array[$index-1] + $array[$index])/2;
}
else {
$result = $array[floor($index)];
}
return $result;
}
$scores = array(22.3, 32.4, 12.1, 54.6, 76.8, 87.3, 54.6, 45.5, 87.9);
echo get_percentile(75, $scores);
echo get_percentile(90, $scores);
+0
Teşekkürler. Harika çalışıyor gibi görünüyor. – Garry
0
yanıt yukarıda daha yüksek yüzde değerine (100) kullanırsanız bir tanımlanmamış endeks bildirimi atabilseydin ve Excel PERCENTILE işlevine göre doğru değerleri döndürmez. see here an example of how it fails.
PHP'de Wikipedia İkinci değişkene göre bir işlev yazdım, Excel'de kullanılan. Bu işlev aynı zamanda yüzde olmayan bir değerden de (aralık dışı) korunur.
function getPercentile($array, $percentile)
{
$percentile = min(100, max(0, $percentile));
array_values($array);
sort($array);
$index = ($percentile/100) * (count($array) - 1);
$fractionPart = $index - floor($index);
$intPart = floor($index);
$percentile = $array[$intPart];
$percentile += ($fractionPart > 0) ? $fractionPart * ($array[$intPart + 1] - $array[$intPart]) : 0;
return $percentile;
}
İlgili konular
- 1. Farklı Nesne'den Oluşan Diziden Dize Dizisi Ekstraksiyonu
- 2. İki argümandan oluşan bir argüman.
- 3. İki sayı arasındaki değişim yüzdesini hesaplama (Python)
- 4. C iki boyuttan oluşan bir dizi yazdırma
- 5. CoffeeScript'deki bir diziden her iki öğeyi alma
- 6. Enlem ve boylam iki nokta arasındaki mesafeyi nasıl hesaplayabilirim?
- 7. İki tarih arasındaki ayın sayısını nasıl hesaplayabilirim? C#
- 8. Matlabdaki bir montaj yüzeyinin hacmini nasıl hesaplayabilirim?
- 9. Bir sayının yüzdesini nasıl hesap ederim?
- 10. bir diziden
- 11. R toplamları yerine xtabs aracını nasıl hesaplayabilirim?
- 12. nth-child
- 13. iki çocuk bir diziden bir ebeveyne paylaşmak ve div
- 14. Bir belgeyi diziden nasıl kaldırabilirim?
- 15. Fortran'daki bir diziden nasıl geçiyorsunuz?
- 16. iki diziyi karşılaştırmak için bir diziden diğerine JavaScript eklemeden önce
- 17. Yakut olarak yüzdesini hesaplayın.
- 18. IOS: bir diziden bir dosya txt bir dize geç
- 19. ": nth-child()"
- 20. Listelerden oluşan bir listeyi
- 21. diziden
- 22. openweathermap.org JSON'da döndürülen santigrattaki sıcaklığı nasıl hesaplayabilirim?
- 23. Doğum tarihi verildiğinde, mevcut yaşı nasıl hesaplayabilirim?
- 24. Piksel cinsinden genişliğin genişliğini nasıl hesaplayabilirim?
- 25. jquery: nth
- 26. Bir diziden rasgele bir değeri nasıl döndürebilirim?
- 27. Bir dizi bir diziden nasıl çıkarılır?
- 28. PowerShell'de bir Diziden bir ArrayList nasıl oluşturulur?
- 29. Yalnızca bir kez oluşan satırları nasıl özetleyebilirim?
- 30. Posta() nedeniyle oluşan bir hatayı nasıl yakalarım?
diziyi sıralayın, değerlerin sayısını sayın,% 75 ve% 90 girişleri hesaplayın ve voila –