我有如下表列表
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")))
有人知道转换/套用字符串作为等式的方法吗?
谢谢。
答案 0 :(得分:0)
实际上,within
比转换更容易。后者要求您使用具有命名参数的函数,该参数很混乱。如果您只是对数据环境进行分配,则伪造会容易一些。
lapply(testinjest, within, eval(parse(text="V6=V6+200")))
但是通常,将代码作为字符串使用并不是一件容易的事。