我尝试将字符串从列转换为公式,并根据指定的值输出结果。例如:
Compo <- c("FE56", "FE58", "FE61", "YI68", "FE11")
Formula <- c("( FE13 / 0.06 ) * CE68",
"( ( CE01 + CE02 + CE03 ) / 100 ) * ( 393682 / 10000 )",
"FE12 / 0.06",
"CE68",
"FQ11")
table <- data.frame(Compo, Formula)
FE13 <- 13
CE68 <- 20
CE01 <- 5
CE02 <- 15
CE03 <- 5.067
FE12 <- 35
FQ11 <-37
table$resultado <- parse(text = tabela$Formula)
table$results <- eval(tabela$resultado)
输出:
但是列results
只返回最后一个公式的值,而它应该返回每个公式的结果。
2条答案
按热度按时间wgeznvg71#
我建议创建一个矢量化和自定义的函数:
chy5wohz2#
如果在数据中设置参数值变量,也可以使用
dplyr
来实现这一点。有时候人们会建议不要使用eval()
,parse()
组合,所以这里使用了这些相同概念的简洁版本:创建于2023-05-18带有reprex v2.0.2