我在x
说y <- function(x){x^2+9*x}
我希望以字符串x^2+9*x
的形式返回,不显示前导/尾随空格。
我尝试了以下内容:
library(stringr)
library(magrittr)
g <- function(x){x^2+9*x}
y1 <- g %>%
deparse_function_body(.) %>%
str_replace(pattern = "[[:punct:]]", "") %>%
noquote(.) %>%
str_trim(.)
y1
这会返回[1] "" "x^2" ""
,而不是[1] "x^2+9*x"
请问有谁可以告诉我最简洁的方法吗?
答案 0 :(得分:3)
您可以将body()
与deparse()
一起使用。不需要包裹。
deparse(body(g)[[2]])
# [1] "x^2 + 9 * x"
好像你想做这样的事情 -
trimws(deparse(g)[3])
# [1] "x^2 + 9 * x"
我想其中任何一个都可以正常工作。