Вектор R последовательностей, индексируемых по логическим значениям? - PullRequest
2 голосов
/ 20 октября 2019

У меня есть следующий код R:

simul <- function() {
  x <- sample(c(-1, 1), n, replace = TRUE)
  s <- cumsum(c(0, x))
}

(tmp = simul())

(1:(n - 1))[tmp[1:(n - 1)] * tmp[3:(n + 1)] < 0]

Я понимаю, что 1:(n - 1) генерирует вектор последовательности от 1 до n - 1 для каждого n, что означает, что таких векторов потенциально много (еслип> 2). Я также знаю, что tmp[1:(n - 1)] * tmp[3:(n + 1)] < 0 возвращает значение ИСТИНА / ЛОЖЬ. Следовательно, кажется, что для каждого вектора 1:(n - 1), tmp[1:(n - 1)] * tmp[3:(n + 1)] < 0 генерирует логическое значение. Но это означает, что (1:(n - 1))[tmp[1:(n - 1)] * tmp[3:(n + 1)] < 0] индексирует каждый вектор по логическому значению, что для меня не имеет смысла. Кроме того, кажется, что в конце этого процесса (1:(n - 1))[tmp[1:(n - 1)] * tmp[3:(n + 1)] < 0] возвращает вектор целых чисел, но что?

Я был бы очень признателен, если бы люди могли потратить время на разъяснение этого.

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