Как убрать двойную обратную косую черту из каждого элемента вектора? - PullRequest
0 голосов
/ 30 октября 2018

У меня есть вектор, содержащий несколько путей к файлам, например:

 v <- paste0("D:\\file\\path", 1:3)

Я хочу заменить все двойные обратные косые черты только одной. Таким образом, результат будет выглядеть следующим образом:

"D:\file\path1" "D:\file\path2" "D:\file\path3"

Я пробовал это:

sapply(df, cat)

Однако это просто генерирует список значений NULL. Я также попробовал:

for (i in 1:length(v)) {
    v[i] <- cat(v[i])
}

Но это дает ошибку: замена имеет нулевую длину. Я не уверен, что я делаю не так.

1 Ответ

0 голосов
/ 30 октября 2018

\ является escape-символом в R, поэтому замена \\ на \ приведет к неправильной интерпретации из R.

Если нужны пути, используйте символ / вместо \\:

v <- gsub(v, pattern="\\", replacement="/", fixed=TRUE)
...