假设我有一个子集化对象名称的字符串。例如:
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
我假设有一种方法可以使用子集化对象(而不仅仅是一个对象名称,我知道它可以工作)。
提前致谢!
答案 0 :(得分:5)
如@MrFlick的评论所述,您可以这样做:
eval(parse(text="foo$var1[foo$var2 < 10 & foo$var3 %in% c(0:100)]"))
parse
将字符串转换为expression
,eval
评估expression
。
尽管如此,这通常被视为R中的不良做法 here