计算R中字符/字符串向量中的MULTIPLE方程

7kqas0il  于 2022-12-30  发布在  其他
关注(0)|答案(2)|浏览(134)

正如你们中的许多人have suggested一样,要计算字符串或字符中的公式,可以使用eval(parse(text = "your equation")),如下所示:

"1+1"
eval(parse(text = "1+1"))
2

当你只有一个方程时,这个方法非常有效,但是当你有一个以字符串/字符形式表示的方程向量时,它只计算最后一个方程:

eval(parse(text = c("1+1","2+2","3+3")))
6

如何计算所有这些表达式并在最后得到结果向量?

c(2,4,6)
sczxawaw

sczxawaw1#

它未进行矢量化,即需要进行循环

unname(sapply(c("1+1","2+2","3+3"), function(x) eval(parse(text = x))))
[1] 2 4 6

如果我们知道运算符,则还可以选择拆分或使用read.table读取为两列,然后使用rowSums

rowSums(read.table(text = c("1+1","2+2","3+3"), header = FALSE, sep = "+"))
[1] 2 4 6
6qftjkof

6qftjkof2#

咕噜是你的朋友。

library(purrr)

equations <- c("1+1","2+2","3+3")

map_dbl(.x = equations, .f = function(equation){
  
  eval(parse(text = equation))
})

[1] 2 4 6

相关问题