如何在字符串中使用包和函数名调用函数::

时间:2018-02-10 15:53:09

标签: r

如何使用完全限定名称调用包中的函数(" package :: function")?

这不起作用:

> eval(call("utils::sessionInfo"))
Error in `utils::sessionInfo`() : 
  could not find function "utils::sessionInfo"

这有效:

eval(call("sessionInfo"))

必须能够在没有内部知识的情况下解析和执行代码片段,但是如何?

1 个答案:

答案 0 :(得分:1)

call替换为parse

eval(parse(text = 'utils::sessionInfo()'))

例如:

eval(parse(text = 'dplyr::count(iris, Species)'))

# A tibble: 3 x 2
  Species        n
  <fctr>     <int>
1 setosa        50
2 versicolor    50
3 virginica     50