Я пытаюсь использовать https://mermaid-js.github.io/mermaid/#/ для вывода некоторых текстов на блок-схему. Это синтаксис, которому я должен следовать, который представляет собой одинарную кавычку вне двойной кавычки. Например,
library(DiagrammeR)
mermaid('graph TB \n Trial_A["<b>Trial_A </b>
<br/> (BGL + PCD vars)
<br/> (XAL)
<br/> (RAX)
<br/> (NOW)"]
\n style Trial_A fill:#FCFBFD \n ')
Итак, я пытаюсь объединить список текста с помощью paste0, но снаружи всегда двойная кавычка:
textn <- c("This is a sentence [<b>]", '"a (panda bear)"')
textn2 <- paste0(textn, collapse = " \n ")
textn2
"This is a sentence [<b>] \n \"a (panda bear)\""
Я хочу
'This is a sentence [<b>] \n \"a (panda bear)\"'
Есть ли способы сделать это? Я попробовал gsub("\"","\'", textn2), это только изменило двойную кавычку внутри.
также вы можете использовать print(textn2, quote=FALSE)
спасибо @RicVillalba, похоже на варианты (useFancyQuotes = FALSE); cat(sQuote(textn2), "\n") может работать. Завтра еще протестирую. Спасибо!
cat(sQuote(textn2), '\n') побить любое регулярное выражение, которое я пробовал.
Возникает новый вопрос. Когда я делаю cat(sQuote(textn2), "\n"), вторая строка оказывается во второй строке, потому что там была \n. Я хочу, чтобы код игнорировал \n и имел точный вывод «Это предложение [<b>] \n \"a (панда)\"' для синтаксиса русалки





noquote() - это то, что вам нужно.
Беги:noquote("Your text")
Вы получаете:Your text
Беги:paste0("'", noquote("Your text"), "'")
Вы получаете:"'Your text'"
Беги:noquote(paste0("'", noquote("Your text"), "'"))
Тогда вы получите то, что хотите:'Your text'
Шарлотта: когда вы наберете и запустите
'text'в консоли, вы увидите[1] "text". потому что это выходной формат для векторов символов в R. Посмотрите, что происходит сcat(textn2)