字符串作为R中的方程式

时间:2018-11-02 16:44:57

标签: r

我有如下表列表

testinjest <- list("BN 01_181102_103545.data"=
  data.frame(V1 = c(1000L, 1100L, 1200L, 1300L),
   V2 = c(28.359069, 28.357302, 28.359111, 28.353656), 
   V3 = c(0.008764, 0.009662, 0.010677, 0.011763), 
   V4 = c(9e-06, 1.2e-05, 8e-06, 3e-06), 
   V5 = c(6e-06, 9e-06, 1e-05, 4e-06), 
   V6 = c(-152.4882, -151.2109, -150.5143, -150.6976)),
"BN 03_181102_105741.data"=
  data.frame(V1 = c(1000L, 1100L, 1200L, 1300L), 
   V2 = c(28.359069, 28.357302, 28.359111, 28.353656), 
   V3 = c(0.008764, 0.009662, 0.010677, 0.011763), 
   V4 = c(9e-06, 1.2e-05, 8e-06, 3e-06), 
   V5 = c(8e-06,3e-06, 1e-05, 8e-06), 
   V6 = c(-152.862, -151.5966, -150.7392, -151.165)))

使用以下功能可获得所需的结果

  lapply(testinjest,transform,V6=V6+200)

但是我希望能够通过字符串传递方程式。似乎什么也没做。

lapply(testinjest,transform,eval(parse(text="V6=V6+200")))

有人知道转换/套用字符串作为等式的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

实际上,within比转换更容易。后者要求您使用具有命名参数的函数,该参数很混乱。如果您只是对数据环境进行分配,则伪造会容易一些。

lapply(testinjest, within, eval(parse(text="V6=V6+200")))

但是通常,将代码作为字符串使用并不是一件容易的事。