Le jeudi 06 novembre 2014 à 11:17 -0800, Conrad Stack a écrit :
> I was also looking for a function like this, but could not find one in
> docs.julialang.org. I was doing this (v0.4.0-dev), for anyone who is
> interested:
>
>
> example = rand(1:10,100)
> uexample = sort(unique(example))
> counts = map(x->count(y->x==y,example),uexample)
>
>
> It's pretty ugly, so thanks, Johan, for pointing out the
> StatsBase->countmap
I've also put together a small package precisely aimed at offering an
equivalent of R's table():
https://github.com/nalimilan/Tables.jl
But there's a more general issue about how to handle arrays with
dimension names in Julia. NamedArrays.jl (which is used in my package)
attempts to tackle this issue, but I don't think we've reached a
consensus yet about the best solution.
Regards
>
>
>
>
> On Sunday, August 17, 2014 9:56:29 AM UTC-4, Johan Sigfrids wrote:
>
> I think countmap comes closest to giving you what you want:
>
> using StatsBase
> data = sample(["a", "b", "c"], 20)
> countmap(data)
>
>
>
> Dict{ASCIIString,Int64} with 3 entries:
> "c" => 3
> "b" => 10
> "a" => 7
>
>
> On Sunday, August 17, 2014 4:45:21 PM UTC+3, Florian Oswald
> wrote:
>
> Hi
>
>
>
> I'm looking for the best way to count how many times a
> certain value x_i appears in vector x, where x could
> be integers, floats, strings. In R I would do
> table(x). I found StatsBase.counts(x,k) but I'm a bit
> confused by k (where k goes into 1:k, i.e. the vector
> is scanned to find how many elements locate at each
> point of 1:k). most of the times I don't know k, and
> in fact I would do table(x) just to find out what k
> was. Apart from that, I don't think I could use this
> with strings, as I can't construct a range object from
> strings.
>
>
> I'm wondering whether a method
> StatsBase.counts(x::Vector) just returning the
> frequency of each element appearing would be useful.
>
>
> The same applies to Base.hist if I understand
> correctly. I just don't want to have to specify the
> edges of bins.
>
>
>
>