Обычный подход должен преобразовать единственные новые строки во входе к “< br/> ”. (Двойные новые строки обычно представляли бы новый “< p> элемент ”.) Это не покрывает multiple-whitespace-runs хотя; если необходимо сохранить их, Вы могли бы заменить каждую последовательность с двумя пространствами пространством и неразрывным пространством ('' ', \xA0', или '& #160'; как символьная ссылка).
существует CSS путем, можно сохранить литеральные новые строки и пробелы, но все еще перенестись, когда длина строки слишком коротка:
white-space: pre-wrap;
Однако это значение свойства CSS 2.1 и CSS 3 не является поддерживаемым перекрестным браузером под своим настоящим именем. WebKit (Safari, Chrome) берет его; чтобы заставить это работать под другими популярными браузерами, необходимо добавить:
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word;
вЂword-wrap’ для IE, который как всегда поступает по-своему выполнения вещей.
Используйте rle ()
:
y <- rle(c(1,0,0,0,1,0,0,0,0,0,2,0,0))
y$lengths[y$values==0]
Это можно сделать в эффективном путем использования индексов изменения значений:
x <- c(1,0,0,0,1,2,1,0,0,1,1)
Найдите место изменения значений:
diffs <- x[-1L] != x[-length(x)]
Получите индексы, а затем получите разницу в последующих индексах:
idx <- c(which(diffs), length(x))
diff(c(0, idx))