对多个字符串使用deparse(substitute)

时间:2019-02-04 16:50:23

标签: r function

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)

以上内容几乎可以正常工作,只是它停在(on?)John。如何使它适用于所有名称。那是彼得,约翰,爱丽丝的版画。 谢谢!

1 个答案:

答案 0 :(得分:2)

您可以做到

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(...()),我们将得到所有符号的类似列表的对象,然后将它们套在它们上面,即可将每个符号转换为字符值