Как я могу удовлетворить мои проблемы с оператором R `:`? - PullRequest
5 голосов
/ 19 августа 2011
Оператор

R's : имеет несколько известных ошибок:

a = c(1, 2, 3)
set.zero = function(n) a[1:n] <<- 0
set.zero(0)
# `a` is now c(0, 2, 3)

Я мог бы просто написать функцию, которая решает это, заставив 1:0 дать пустое вектор, но я бы предпочел, если бы было достаточно кратко base или CRAN пакет, предоставляющий такую ​​функцию (в идеале заменяя :, если это не слишком опасно). Я пытался найти один, но не могу его найти.

Существует ли такая вещь?

1 Ответ

6 голосов
/ 19 августа 2011

Попробуйте:

set.zero = function(n) a[seq_len(n)] <<- 0

Обратите внимание, что seq(1, length = n) также работает.

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