Jestem ciekawy, czy R może użyć swojej eval()
funkcji do wykonania obliczeń dostarczonych np. Przez ciąg.
Jest to częsty przypadek:
eval("5+5")
Jednak zamiast 10 otrzymuję:
[1] "5+5"
Jakieś rozwiązanie?
eval(parse(text = *))
fałszywe rozwiązania.
QQ = c('11','12','13','21','22','23')
tj .: QQ = c (..., 'ij', ..) z i, j zmieniającymi się w zakresie, który może być różny w różnych biegach. Dla tego i podobnych przykładów mogę napisać skrypt jako paste( "QQ = c('", paste(rep(1:2,each=3),1:3, sep="", collapse="','"), "')",sep="")
, a opcja eval(parse(text=...))
tworzy wektor QQ w środowisku roboczym zgodnie ze skryptem. Jaki byłby to odpowiedni sposób kodera R, gdyby nie „text = ...”?
string
? Odpowiedź Martina Mächlera powinna zasługiwać na znacznie większe poparcie.