我找到Statistics.Sample.Histogram
,但我似乎无法使用它。如果我希望能够将列表分成四个类别,我希望能够做到这样的事情:
import Statistics.Sample.Histogram
histogram 4 [1, 2, 9, 9, 9, 9, 10, 11, 20]
但它给了我错误“约束中的非类型变量参数”,我完全不明白。我究竟做错了什么?
答案 0 :(得分:3)
histogram
获取Vector
个值,而不是列表。您可以使用Data.Vector
的{{3}}功能将您的列表转换为Vector
:
import qualified Statistics.Sample.Histogram as S
import qualified Data.Vector as V
main :: IO ()
main = do
let xs = V.fromList [1, 2, 9, 9, 9, 9, 10, 11, 20]
bins = 4
(lowerbounds, sizes) = S.histogram bins xs
print $ V.toList lowerbounds
print $ V.toList sizes
结果是一对Vector
s保持每个区间的下限和每个区间内的样本数 - 如果要显示它们,您需要使用{{3} }。