我需要找到一种方法让R在控制台中调用时“键入”某个文本字符串。
假设我有一个包含许多行的列表。每行包含表示计算规则的文本(在读取时可以处理的格式)。
A <- 25
B <- 15
C <- 50
A,B和C是如上所示的定义变量。
my_list <- data.frame(c("{A}+{B}<={C}","{B}={A}"))
我的列表包含一些规则,我想打印并检查一个命令。通过打字
my_list[1,]
我想检查A + B是否确实低于或等于C.
我搜索一个结果为TRUE的函数。有人可以帮忙吗?感谢您的支持。 S.
我们用{}
删除gsub
,然后做一个eval(parse
sapply(gsub("[{}]", "", my_list[[1]]), function(x) eval(parse(text=x)))
# A+B<=C B==A
# TRUE FALSE
在这里我们假设在第二次比较中它是B==A
require(glue)
require(magrittr)
A <- 25
B <- 15
C <- 50
c("{A}+{B}<={C}","{B}=={A}") %>%
sapply(evaluate, parent.frame())
#{A}+{B}<={C} {B}=={A}
# TRUE FALSE
可以立即使用quote
和eval
它E.g,
my_list <- c(quote(A+B<=C), quote(B==A))
eval(my_list[[1]])