【发布时间】:2013-12-19 10:19:37
【问题描述】:
有人告诉我,解析和评估字符串是个坏习惯
to_run = "for (i in 1:10){print(i);print('Hello World!')}"
eval(parse(text=to_run))
为什么这是一个坏习惯?
在我看来这是一种非常灵活的编程方式,因为我们可以通过将字符串粘贴在一起以迭代方式构建我们的代码。例如,它可以轻松处理各种尺寸的对象。
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))
【问题讨论】:
-
除其他外,您不认为从长远来看这会降低您的代码的灵活性和可重用性吗?
标签: r parsing expression eval