如何将子集化对象字符串名称转换为R中的可用对象?

the*_*ist -3 string get r subset

假设我有一个子集化对象名称的字符串.例如:

foo$var1[foo$var2 < 10 & foo$var3 %in% c(0:100)]  #is currently represented as...
"foo$var1[foo$var2 < 10 & foo$var3 %in% c(0:100)]"
Run Code Online (Sandbox Code Playgroud)

我想使用对象名称的字符串来调用子集化对象.

我试过用get():

get("foo$var1[foo$var2 < 10 & foo$var3 %in% c(0:100)]")
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

Error in "foo$var1[foo$var2 < 10 & foo$var3 %in% c(0:100)]":
object  "foo$var1[foo$var2 < 10 & foo$var3 %in% c(0:100)]" not found
Run Code Online (Sandbox Code Playgroud)

我假设有一种方法可以使用子集化对象(而不仅仅是一个对象名称,我知道它可以工作).

提前致谢!

Box*_*uan 5

正如@MrFlick的评论中提到的,你可以这样做:

eval(parse(text="foo$var1[foo$var2 < 10 & foo$var3 %in% c(0:100)]"))
Run Code Online (Sandbox Code Playgroud)

parse将字符串转换为a expressioneval对其进行求值expression.

虽然,这通常被认为R中一种不好的做法看 这里