2016-09-02 4 views
0

Код ниже.В R, как получить имя входной переменной

func <- function(x){ 
print(paste(substitute(x))) 
} ; 
func(x[]) 

Если я бегу FUNC (х), код печати "х", но если я бегу как FUNC (х []) или FUNC (х $ у), он не может печатать " x [] "или" x $ y "правильно. Как я могу получить правильную строку ввода? Спасибо.

Подобный пример подобен функции plot(), когда я использую график (x $ y), ylab - это «x $ y». Когда я использую график (x []), ylab является «x []». Когда я использую сюжет (1:20), ylab «1:20».

+0

'печати (deparse (запасной (х)))' подробности см раздел '? Substitute' – rawr

ответ

1

Использовать deparse.

func <- function(x){ 
    deparse(substitute(x)) 
} 

который дает

> func(x[1]) 
[1] "x[1]" 
> func(x[]) 
[1] "x[]" 
Смежные вопросы