R gsub добавить начальный разрыв строки

Мне нужно добавить разрыв начальных строк "\n" в список имен меток осей в R. Я не могу понять, как это сделать с помощью gsub. Например, мне нужно, чтобы "Q1\n/\n15" читалось как "\nQ1\n/\n15". Ни гугл, ни справочные команды не ведут меня к ответу. Любой совет?

Заранее спасибо.


person Jonathan Burley    schedule 18.05.2012    source источник
comment
@joran: псш, слишком просто. gsub("^(.)","\n\\1","Q1\n/\n15"). :)   -  person Joshua Ulrich    schedule 18.05.2012
comment
@Joshua: для этого есть нажатие клавиши emacs ~_*   -  person Carl Witthoft    schedule 18.05.2012
comment
Спасибо вам всем. @joran, я действительно идиот, раз не подумал об этом. И спасибо, Джошуа, я воспользуюсь этим и узнаю немного больше о регулярных выражениях.   -  person Jonathan Burley    schedule 18.05.2012
comment
Пока мы на нем: sprintf("\n%s", "Q1\n/\n15")   -  person Tyler Rinker    schedule 18.05.2012
comment
@JoshuaUlrich еще проще: gsub("^","\n","Q1\n/\n15").   -  person Brian Diggs    schedule 19.05.2012
comment
@joran, почему бы не опубликовать ответ?   -  person David LeBauer    schedule 19.05.2012
comment
@ Дэвид, потому что меня оторвали от компьютера.   -  person joran    schedule 19.05.2012


Ответы (1)


Итак, в комментариях (на момент написания этой статьи) есть около 4 ответов, поэтому я просто суммирую их в правильном ответе.

examp <- "Q1\n/\n15"

paste("\n", examp, sep="")
gsub("^(.)","\n\\1",examp)
sprintf("\n%s", examp)
gsub("^", "\n", examp)

все это дает

[1] "\nQ1\n/\n15"

И все они правильно векторизованы (то есть, если examp <- c("Q1\n/\n15", "Q1\n/\n16"), все возвращают [1] "\nQ1\n/\n15" "\nQ1\n/\n16".

person Community    schedule 18.05.2012
comment
Следите за gsub("^(.)","\n\\1",examp), так как он не будет работать с пустыми строками (т. е. со строками, содержащими только новую строку). Для этого конкретного вопроса похоже, что этого никогда не может быть, но это может сбить вас с толку, если вы повторно используете код где-то еще. - person Alessandro; 20.09.2012