Может ли R paste () вывести "\"? - PullRequest
4 голосов
/ 07 декабря 2010

Как указано в руководстве Intro to R ,

paste("\\")

печать

[1] "\\"

Можно ли распечатать пасту

[1] "\"

обновление: Я не хотел, чтобы этот хороший ответ Гэвина застрял в комментариях ниже, поэтому я вставлю его сюда:

print(xtable(as.matrix("\\citep{citation}")), sanitize.text.function = function(x) {x}) 

Ответы [ 3 ]

6 голосов
/ 07 декабря 2010

Вы путаете, как что-то хранится и как оно «печатается».

Вы можете использовать вставку, чтобы объединить \ с чем-то другим, но если вы напечатаете это, то напечатанное представление будет \ выходить\, но если вместо этого вы выводите его в файл или на экран, используя cat, то вы получите одиночный символ \, например:

> tmp <- paste( "\\", "cite{", sep="" )
> print(tmp)
[1] "\\cite{"
> cat(tmp, "\n")
\cite{ 
4 голосов
/ 07 декабря 2010

Это напечатанное представление одного «\» в R. Очевидно, правильный ответ будет зависеть от вашего конечного использования, но будет что-то вроде этого:

> citations <- paste("title", 1:3, sep = "")
> cites <- paste("\\citep{", citations, "}", sep = "")
> writeLines(cites)
\citep{title1}
\citep{title2}
\citep{title3}

Используя writeLines(), вы можете вывести это в файл, используя что-то вроде:

> writeLines(cites, con = file("cites.txt"))

В результате получается следующий файл:

$ cat cites.txt 
\citep{title1}
\citep{title2}
\citep{title3}
1 голос
/ 08 декабря 2010

Один из способов сделать это - использовать команду write, например,

> write("\\", file="")
\

Запись обычно используется для записи в файлы, поэтому вам нужно установить file="", чтобы заставить ее печатать наSTDOUT.

В команде записи повторяется \, чтобы он не выходил за заключительную кавычку.

Я не уверен, что это правильный способ сделать это, ноэто работает для меня.

Редактировать: Понял немного слишком поздно, что вы использовали команду paste ().Надеюсь, мой ответ все еще имеет отношение к вашему положению.Извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...