Сколько элементов в векторе больше x без использования цикла
Если у меня есть следующий вектор:
x
[1] 1 5 8 9 1 0 15 15
и я хочу знать, сколько элементов больше 10, как я могу продолжить, не используя цикл?
Я хотел бы получить:
2
в результате
Ответ 1
Используйте length или sum:
> length(x[x > 10])
[1] 2
> sum(x > 10)
[1] 2
В первом подходе вы создадите вектор, который подмножает значения, соответствующие вашему условию, и затем извлекает length вектора.
Во втором подходе вы просто создаете логический вектор, который указывает, соответствует ли каждое значение условию (TRUE) или не соответствует (FALSE). Поскольку TRUE и FALSE равны "1" и "0", вы можете просто использовать sum, чтобы получить ответ.
Поскольку первый подход требует индексации и подмножества перед подсчетом, я почти уверен, что второй подход будет быстрее первого.