我在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"
请给我看看实现这一目标的最干净的方法好吗?
发布于 2015-12-10 23:38:10
您可以将body()与deparse()结合使用。不需要包裹。
deparse(body(g)[[2]])
# [1] "x^2 + 9 * x"你好像想做这样的事-
trimws(deparse(g)[3])
# [1] "x^2 + 9 * x"我想这两种都能正常工作。
https://stackoverflow.com/questions/34213731
复制相似问题