Функции для нахождения элементов в векторе в R - PullRequest
0 голосов
/ 02 декабря 2011

Мне нужно определить функцию, которая принимает два аргумента, вектор V и конкретное значение K в следующей форме count(V, K) и возвращает число вхождений K в V.

vec <- c(1,2,2,2,3,3,4,4,4,4,5)  
count(vec, 2)  # Should return 3 - 2 occurs three times in vec  
count(vec, 4)  # Should return 4 
count(vec, 8)  # Should return 0 - 8 is not found in vec 

Спасибо за любую помощь!

Ответы [ 3 ]

2 голосов
/ 02 декабря 2011

Любой из них должен работать:

sum(vec==2)    # sum of logicals, TRUE==1
length(vec[vec==2])  #logical indexing
table(vec)["2"]   # alpha indexing of table object
0 голосов
/ 02 декабря 2011

работает для vec длин, непомерно длинных:
rle (sort (vec))

И согласно комментарию Джошуа: в зависимости от ваших данных вам может понадобиться использовать floor или аналогичные функции, чтобы "одинаковые" элементы vec рассматривались как идентичные.

0 голосов
/ 02 декабря 2011

Должно работать на различные типы K:

count <- function(V, K) {
    length(subset(V, V==K))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...