Заменить двойную кавычку на одинарную в R

Я пытаюсь использовать 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), это только изменило двойную кавычку внутри.

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

Ric Villalba 29.11.2022 02:18

также вы можете использовать print(textn2, quote=FALSE)

Ric Villalba 29.11.2022 02:23

спасибо @RicVillalba, похоже на варианты (useFancyQuotes = FALSE); cat(sQuote(textn2), "\n") может работать. Завтра еще протестирую. Спасибо!

Charlotte Deng 29.11.2022 02:23
cat(sQuote(textn2), '\n') побить любое регулярное выражение, которое я пробовал.
Chris 29.11.2022 03:05

Возникает новый вопрос. Когда я делаю cat(sQuote(textn2), "\n"), вторая строка оказывается во второй строке, потому что там была \n. Я хочу, чтобы код игнорировал \n и имел точный вывод «Это предложение [<b>] \n \"a (панда)\"' для синтаксиса русалки

Charlotte Deng 29.11.2022 19:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

noquote() - это то, что вам нужно.

1. Смотрите ввод и вывод:

Беги:
noquote("Your text")

Вы получаете:
Your text

2. Добавьте одинарные кавычки:

Беги:
paste0("'", noquote("Your text"), "'")

Вы получаете:
"'Your text'"

3. Повторно используйте функцию noquote снова (извините за вложенную функцию — она некрасивая, но работает):

Беги:
noquote(paste0("'", noquote("Your text"), "'"))

Тогда вы получите то, что хотите:
'Your text'

Другие вопросы по теме