I was told that it is a bad habit to parse and evaluate a character string
to_run = "for (i in 1:10){print(i);print('Hello World!')}"
eval(parse(text=to_run))
Why is this a bad habit?
It seems to me that this is a fairly flexible way of programming, since we can build our code in iterative order by inserting character strings together. For example, it makes it easy to process objects of various sizes, for example.
if (length(dim(my.array)) == 2){to_run = "A = my.array[1,]"}
if (length(dim(my.array)) == 3){to_run = "A = my.array[1,,]"}
eval(parse(text=to_run))
source
share