Свернуть в одну строку, а затем разбить на "Y".
x <- c("Y", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "Y", "N", "N", "N", "N")
y <- paste(x, collapse = "")
z <- paste("Y", strsplit(pn, "Y")[[1]], sep = "")[-1]
z
Или с использованием кодировки длины серии.
n <- rle(x)$lengths[c(FALSE, TRUE)]
lapply(n, function(i) paste("Y", rep.int("N", i), sep = "", collapse = ""))
(Это даст вам список, а не вектор. Используйте unlist
, если это не то, что вы хотите.)