Подсчитать уникальные значения - PullRequest
122 голосов
/ 18 ноября 2010

Допустим, у меня есть:

v = rep(c(1,2, 2, 2), 25)

Теперь я хочу посчитать, сколько раз каждое уникальное значение появляется. unique(v) возвращает уникальные значения, но не их количество.

> unique(v)
[1] 1 2

Я хочу что-то, что дает мне

length(v[v==1])
[1] 25
length(v[v==2])
[1] 75

но как более общий однострочный :) Что-то близкое (но не совсем), как это:

#<doesn't work right> length(v[v==unique(v)])

Ответы [ 11 ]

0 голосов
/ 22 мая 2013
count_unique_words <-function(wlist) {
ucountlist = list()
unamelist = c()
for (i in wlist)
{
if (is.element(i, unamelist))
    ucountlist[[i]] <- ucountlist[[i]] +1
else
    {
    listlen <- length(ucountlist)
    ucountlist[[i]] <- 1
    unamelist <- c(unamelist, i)
    }
}
ucountlist
}

expt_counts <- count_unique_words(population)
for(i in names(expt_counts))
    cat(i, expt_counts[[i]], "\n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...