Мені цікаво дізнатися, чи може R використовувати свою eval()
функцію для обчислень, передбачених, наприклад, рядком.
Це звичайний випадок:
eval("5+5")
Однак замість 10 я отримую:
[1] "5+5"
Будь-яке рішення?
eval(parse(text = *))
підроблені рішення.
QQ = c('11','12','13','21','22','23')
тобто: QQ = c (..., 'ij', ..) з i, j, що змінюються в діапазоні, який може змінюватися від запуску до запуску. Для цього та подібних прикладів я можу записати сценарій як paste( "QQ = c('", paste(rep(1:2,each=3),1:3, sep="", collapse="','"), "')",sep="")
, і параметр eval(parse(text=...))
створює вектор QQ у робочому середовищі відповідно до сценарію. Яким був би правильний R-кодер для цього, якби не текст "..."?
string
? Відповідь Мартіна Мехлера має заслуговувати на набагато більше результатів.