Это сработало для меня:
install.packages('rgdal',repos="http://www.stats.ox.ac.uk/pub/RWin")
Просто для забавы, вместо регулярного выражения вы можете использовать следующую функцию javascript:
let original = '|1.774|1.78|1|||||1.781|1||||||||';
let str = original.split('|').map((e, i, arr) => {
// 1) if the element is not on the end of the split array...
// 2) and if element is empty ('')
// -> there's no data between '|' chars, so convert from empty string to space (' ')
if (i > 0 && i < arr.length -1 && e === '') return ' ';
// otherwise return original '|' if there is data found OR if element is on the end
// -> of the split array
else return e
}).join('|')
Регулярное выражение Wiktor довольно красиво, но я просто подумал, что предложу простую версию JS. [ 112]
Вам нужно использовать здесь прогноз, чтобы проверить |
после |
:
str = str.replace(/\|(?=\|)/g, '| ')
См. Демонстрацию regex
[1113 ] Подробности
\|
- литерал |
(?=\|)
- позитивный прогноз, который соответствует, но не потребляет следующий |
символ, таким образом оставляя его вне соответствия, и этот символ все еще доступен для сопоставления во время следующей итерации.