我正在解决 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,这让我相信我们距离人工智能完全接管我们的工作还很远。
“用户输入”的来源是什么?你的例子首先不会被接受。也许需要你的用户写
my_input <- c('a+b', ''b^2')
my_list <- list(A = expression(my_input[1], B = expression(my_input[2]))