2013-10-03 5 views
15

Если я создаю переменную с обратным знаком в имени, есть ли способ получить к ней доступ с использованием синтаксиса backtick?backticks в имени переменной

assign("a`b", 5) 
get("a`b") 
#[1] 5 

# The attempts below all end in various errors 
# `a`b` 
# `a``b` 
# `a\\`b` 
+4

почему конкретно вы пытаетесь получить к нему доступ с помощью кавычку? Что не так с цитатами, и уверены ли вы, что нет другого способа сделать это? –

+0

Я думаю, что ответы можно суммировать одним словом - удобство – eddi

+0

Однако вы работаете с такими именами, вы можете назначить его переменной, а затем 'get (.)' Этой переменной –

ответ

17

Все ваши попытки заканчиваются в различных ошибок, потому что ?Quotes говорит, что вы можете только избежать символов, перечисленных в (прилагается) таблицы; и "`" не находится в этой таблице.

Вы можете использовать шестнадцатеричный, восьмеричной и т.п. представление "`" хотя:

> `a\x60b` # hex 
[1] 5 
> `a\140b` # octal 
[1] 5 
+0

+1 И он даже хорошо печатает: 'print ('a \ x60b')' – Frank

+0

Но если вы не знаете * a priori *, где обратные образы в именах столбцов, что делать? будет работать 'gsub (''', '\ x60', colnames) 'достаточно? –

+0

Связанная версия справки предназначена для R-devel, и на самом деле это включает обратные ссылки в качестве экранируемого персонажа, поэтому я предполагаю, что это означает, что быстрый запуск начнет работать для этого в ближайшее время. – eddi

Смежные вопросы