Использование deparse (замены) для нескольких строк - PullRequest
0 голосов
/ 04 февраля 2019

Сочетание deparse(substitute) кажется полезным.Тем не менее, как я могу использовать это для нескольких строк.Рабочий пример:

print_name<-function(x){
x<-deparse(substitute(x))
print(x)
}

Как я могу сделать эту работу для чего-то подобного?

print_name<-function(x,...){
  x<-deparse(substitute(x))
  y<-deparse(substitute(...))
  print(x)
  print(y)
}

print_name(Peter,John,Alice)

Выше почти работает, за исключением того, что останавливается на (вкл?) Джона.Как я могу заставить это работать для всех имен.Это печать Питер, Джон, Алиса.Спасибо!

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете сделать это

print_name<-function(x,...){
  x<-deparse(substitute(x))
  y<-sapply(substitute(...()), deparse)
  print(x)
  print(y)
}

print_name(Peter,John,Alice)
# [1] "Peter"
# [1] "John"  "Alice"

Если мы сделаем substitute(...()), мы получим объект в виде списка всех символов, и мы просто наложим на них слой, чтобы превратить каждый из них в символьное значение.

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