Поиск позиции индекса максимального пробега для заданного значения с помощью rle () - PullRequest
0 голосов
/ 12 ноября 2018

В более раннем вопросе кто-то отправил ответ:

set.seed(100)
coins <- sample(c("H", "T"), 1000, replace = TRUE)
rle_coins <- rle(coins)
max(rle_coins$lengths[rle_coins$values == "H"])

Мне интересно, как, основываясь на вышеупомянутом ответе, я бы обнаружил позицию индекса самого длинного прогонаГоловы?

1 Ответ

0 голосов
/ 12 ноября 2018
set.seed(100)
coins <- sample(c("H", "T"), 1000, replace = TRUE)


rle_coins <- rle(coins)


##Create a data frame with information
##Index start refers to the index where the run starts
k <- tibble(value = rle_coins$values,
       streak = rle_coins$lengths) %>%
  mutate(index_start = c(1, rep(0,length(rle_coins$lengths)-1)))

#For loop to mutate the index_start variable
for(i in 2:nrow(k)){
    k$index_start[i] <- k$index_start[i-1] + k$streak[i-1]
}
remove(i)

##Filtering the data frame to obtain the largest run
k %>% group_by(value) %>% top_n(1,streak) %>% filter(value == "H")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...