如何将未计算的表达式列表转换为 R 中的表达式对象列表

问题描述 投票:0回答:1

我正在解决 R 中的一个问题,我需要将未计算的表达式列表转换为一种格式,其中每个元素都显式包装在 expression() 对象中。这些表达式涉及环境中尚未定义的变量。以下是所涉及格式的详细信息:

输入格式:

my_list <- list(A = a + b, B = b^2)

所需的输出格式:

list(A = expression(a + b), B = expression(b^2))

关键的挑战是创建列表时未定义变量 a 和 b,我想避免在转换期间对这些表达式进行任何计算。转换必须处理表达式,以便它们为以后的求值做好准备,同时在新形式中保持不求值。

要求我们不能使用点 (...),因为输入只是一个未评估的列表对象。

我尝试在 Hadley 的书“Advanced R”中找到解决方案,但是没有关于如何获取未计算的对象并将其转换为子表达式的信息(有一些带有点的巧妙技巧,但我们有一个限制,即所有调用已经打包到列表类对象中)。

我也尝试过ChatGPT,这让我相信我们距离人工智能完全接管我们的工作还很远。

r expression non-standard-evaluation
1个回答
0
投票

“用户输入”的来源是什么?你的例子首先不会被接受。也许需要你的用户写

 my_input <- c('a+b',  ''b^2')
my_list <- list(A = expression(my_input[1], B = expression(my_input[2]))
© www.soinside.com 2019 - 2024. All rights reserved.