Как подсчитать, сколько раз значение встречается в столбце кадра данных? - PullRequest
5 голосов
/ 06 июля 2010

Есть ли простой способ определить, сколько раз значение находится в векторе или столбце данных?По сути, мне нужны числовые значения гистограммы, но я не знаю, как получить к ней доступ.

# sample vector
a <- c(1,2,1,1,1,3,1,2,3,3)

#hist
hist(a)

Спасибо.

ОБНОВЛЕНИЕ:

По предложению Дирка я использую гист.Есть ли лучший способ, чем указать диапазон 1.9, 2.9 и т. Д., Если я знаю, что все мои значения являются целыми числами?

 hist(a, breaks=c(1,1.9,2.9,3.9,4.9,5.9,6.9,7.9,8.9,9.9), plot=FALSE)$counts

Ответы [ 4 ]

20 голосов
/ 06 июля 2010

Используйте функцию table.

9 голосов
/ 06 июля 2010

Попробуйте:

R> a <- c(1,2,1,1,1,3,1,2,3,3)
R> b <- hist(a, plot=FALSE)
R> str(b)
List of 7
 $ breaks     : num [1:5] 1 1.5 2 2.5 3
 $ counts     : int [1:4] 5 2 0 3
 $ intensities: num [1:4] 1 0.4 0 0.6
 $ density    : num [1:4] 1 0.4 0 0.6
 $ mids       : num [1:4] 1.25 1.75 2.25 2.75
 $ xname      : chr "a"
 $ equidist   : logi TRUE
 - attr(*, "class")= chr "histogram"
R> 

R - объектно-ориентированный , и большинство методов возвращают значимые результаты.Используйте их.

4 голосов
/ 06 июля 2010

Если вы хотите использовать hist, вам не нужно указывать разрывы так, как вы, просто используйте функцию seq

br <- seq(0.9, 9.9, 1)
num <- hist(a, br, plot=F)$counts

Кроме того, если вы ищете конкретное значение, вы также можете использовать which.

Например:

num <- length(which(a == 1))
2 голосов
/ 10 апреля 2013

В дополнение к разнице в производительности между hist и table в случае многих уникальных значений, на которые уже указывали Dirk и mbq, я также хотел бы упомянуть другое отличие в функциональности.

hist$counts также даст вам нулевые отсчеты для бункеров, которые не имеют каких-либо случаев. Это может быть очень полезно в том случае, если вы хотите быть уверенным в количестве бинов (например, столбцов на столбчатой ​​диаграмме), которые в итоге окажутся на следующем графике.

table, с другой стороны, будет подсчитывать только существующие значения.

Возможно, вы также захотите проверить параметр right в hist, который определяет, будут ли ваши разрывы (интервалы) закрыты или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...