从`glue`字符串中提取参数

时间:2017-09-14 10:44:24

标签: r

说我有以下字符串:

str1 <- "Isolated values : {x1}\nBasic operation: {x2+x3[2]}\nBase function: {cos(x4)}\nLoaded function: {str_sub(x5,1,5)}\nInexistent/unloaded/unaccessible function : {f1(x6)}\nUsing constants: {pi*x7}"

我们定义参数:

library(glue)
library(stringr)
x1 <- 1
x2 <- 2
x3 <- c(2,3)
x4 <- 4
x5 <- "hello world"
x6 <- 6
x7 <- 7
f1 <- function(x){"I shouldn't exist"}

我可以使用胶水并且工作正常:

glue(str1)
# Isolated values : 1
# Basic operation: 5
# Base function: -0.653643620863612
# Loaded function: hello
# Inexistent/unloaded/unaccessible function : I shouldn't exist
# Using constants: 21.9911485751286

现在我稍微修改了工作区

rm(f1,x6)

我想从这个字符串中提取参数并得到以下输出(顺序并不重要):

extract_glue_params(str1)
# [1] "x1" "x2" "x3" "x4" "x5" "f1" "x6" "x7"

我认为f1是一个参数,因为当cosstr_sub(来自stringr)时,无法从当前环境访问它。

pi是常数,所以我也想忽略它。

对于"a"glue("{data.frame(a=1)}")glue("{x1$a}")之类的解决方案我是否正常...我会将其用于一般的简单案例。< / p>

glue包在C中进行解析,因此我无法窃取其代码。

0 个答案:

没有答案