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

How do I convert a subsetted object character string name to a usable object in R?

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

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)]"

我想用对象名称的字符串来调用子集对象。

我尝试使用 get():

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

但我收到错误:

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

我假设有一种方法可以使用子集对象来做到这一点(相对于我知道有效的对象名称)。

提前致谢!

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

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

parse 将字符串转换为 expression 并且 eval 计算出 expression.

不过,这在 R 中通常被认为是一种不好的做法,请参阅 here