Function that returns a list of length 2, first element of the list is the length of the starting streak of 1's, the second element is the length of the longest streak of 1's.
test <- as.data.frame(matrix(rbinom(20, 1, 0.5), nrow=1))
numInStreakAtBeginning <- function(row){
runs <- rle(row[1,]) # convert to vector
retList <- list() # store output
if(!runs$values[1]){ # if the first value is 0, the length of the first streak is 0
retList$firstStreak <- 0
}else{
retList$firstStreak <- runs$lengths[1] # if the first value is not 0, return length of first streak
}
retList$longestStreak <- max(runs$lengths[runs$values==1L]) # the longest streak of 1's, regardless of starting point
return(retList)
}
numInStreakAtBeginning(test)