Строка как уравнение в R - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть список таблиц следующим образом

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 голосов
/ 02 ноября 2018

На самом деле within сделает это проще, чем преобразование. Последнее требует, чтобы вы использовали именованные параметры для функции, которые являются грязными. Если вы просто делаете назначения в среду данных, это немного легче подделать.

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

Но в целом работа с кодом в виде строки не так проста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...