У меня есть булев вектор, полученный из временного ряда. Он в основном выглядит так: c (true, false, true, true, false, false, false, true, true ...).подсчет числа истинных/talse периодов в r
Я хочу подсчитать периоды, в которых вектор является истинным. Пример: для такого вектора: c (true, true, false, true) было бы 2 (1 длинный истинный период в начале, 1 короткий в конце).
вектор может содержать НО в начале.
Я думал, что-то вроде:
aaa <- c(NA,F,T,T,T,F)
for(j in 1:(length(aaa)-1)){
if(aaa[j]!=aaa[j+1]){
# add a counter that returns [1]
}
}
================================= ================
редактировать: Это работает для меня:
data.frame("#"=unlist(rle(aaa)[1]),"length"=unlist(rle(aaa)[2]))
Что вы ожидаете от c (TRUE, NA, TRUE), чтобы дать вам? Ответ на ваш запрос, скорее всего, будет использоваться для кодирования длины пробега, см. '? Rle' – Miff
. Пожалуйста, отредактируйте сообщение, чтобы включить комментарий, а также включить фиктивный код, чтобы выделить 1) вектор ввода 2) вектор вывода 3) что вы пробовали до сих пор. Пожалуйста, посмотрите [как опубликовать воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – OdeToMyFiddle
@Miff: c (TRUE, NA , TRUE) должен возвращать 2 – enroute