объединение строк в одну строку в г - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь объединить несколько укусов в одно.В конце эта строка должна быть сгенерирована: //*[@id="coll276"] Так что моя внутренняя часть строки является вектором: tag <- 'coll276' Я уже использовал метод paste (), как этот:

paste('//*[@id="',tag,'"]', sep = "")

Но мой результат выглядитнапример: //*[@id=\"coll276\"] Я не знаю, почему R кладет некоторые \ в мою строку, но как я могу решить эту проблему?

Большое спасибо!

1 Ответ

0 голосов
/ 31 мая 2018

tldr: Не беспокойся о них, их там нет.Это просто что-то, добавленное print

Эти \ являются escape-символами, которые говорят R игнорировать специальные свойства символов, следующих за ними.Посмотрите на вывод вашей функции вставки:

paste('//*[@id="',tag,'"]', sep = "")
[1] "//*[@id=\"coll276\"]"

Вы увидите, что вывод, поскольку он является строкой, заключен в двойные кавычки "".Обычно двойные кавычки внутри вашей строки разбивают строку на две строки с голым кодом в середине: "//*[@id\" coll276 "]"

Чтобы предотвратить это, R "экранирует" кавычки в вашей строке, чтобы они несделай это.Это просто визуальный эффект.Если вы напишите свою строку в файл, вы увидите, что на самом деле этих экранирующих символов \ нет:

write(paste('//*[@id="',tag,'"]', sep = ""), 'out.txt')

Это то, что находится в файле:

//*[@id="coll276"]

Вы можете использовать cat для вывода точного значения строки на консоль (Спасибо @LukeC):

cat(paste('//*[@id="',tag,'"]', sep = ""))
//*[@id="coll276"]

Или использовать одинарные кавычки (если это возможно):

paste('//*[@id=\'',tag,'\']', sep = "")
[1] "//*[@id='coll276']"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...