Подтвердить что ты не робот

Сколько элементов в векторе больше x без использования цикла

Если у меня есть следующий вектор:

x
[1]  1  5  8  9  1  0 15 15

и я хочу знать, сколько элементов больше 10, как я могу продолжить, не используя цикл?

Я хотел бы получить:

2

в результате

4b9b3361

Ответ 1

Используйте length или sum:

> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2

В первом подходе вы создадите вектор, который подмножает значения, соответствующие вашему условию, и затем извлекает length вектора.

Во втором подходе вы просто создаете логический вектор, который указывает, соответствует ли каждое значение условию (TRUE) или не соответствует (FALSE). Поскольку TRUE и FALSE равны "1" и "0", вы можете просто использовать sum, чтобы получить ответ.

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