Замена фигурных апострофов и цитат прямыми апострофами и цитатами с использованием gsub - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь заменить все фигурные апострофы / цитаты прямыми, используя gsub для своей домашней работы. Когда я запускаю следующий код, приведенный ниже, я сталкиваюсь с несколькими проблемами, приведенными на снимке экрана ниже.

gsub("’","'",prank_df$Prank, ignore.case=TRUE) gsub("‘","'",prank_df$Prank, ignore.case=TRUE) gsub('“','"',prank_df$Prank, ignore.case=TRUE)

Это вывод перед выполнением указанных выше функций: enter image description here

Это результат работы вышеуказанных gsubs:

enter image description here

1 Ответ

0 голосов
/ 03 апреля 2020

Я предполагаю, что вы ищете способ гибко gsub выражений. Вы можете взглянуть на функцию qdap::mgsub, которая позволяет проверять векторизованные шаблоны, замены и символьный объект. Я могу привести глупый пример:

str <- "This string ‘has’ non “standard“ elements"

df = data.frame(str = rep(str,5))

qdap::mgsub(pattern = c("‘", "’", '“'),
      replacement = c("'","'",'"'),
      df$str)
[1] "This string 'has' non \"standard\" elements" "This string 'has' non \"standard\" elements"
[3] "This string 'has' non \"standard\" elements" "This string 'has' non \"standard\" elements"
[5] "This string 'has' non \"standard\" elements"

Кстати, если вы хотите, чтобы в вашей строке были большие кавычки ("), R будет пробел их. При использовании функции печати, например, cat, вы увидите ожидаемый результат:

cat(qdap::mgsub(pattern = c("‘", "’", '“'),
+             replacement = c("'","'",'"'),
+             df$str), sep = "\n")
This string 'has' non "standard" elements
This string 'has' non "standard" elements
This string 'has' non "standard" elements
This string 'has' non "standard" elements
This string 'has' non "standard" elements
...