函数 return 的 R 评估问题

R Eval issue with function return

谁能告诉我为什么 eval(parse(text=xxxx)) 用于 select 在几个数据帧之一之间输出为函数 return 时失败

例如我在一个函数中生成了三个数据框;

aaa.df, bbb.df, ccc.df

和一个 'mode' 参数,例如aaa / bbb / ccc(在这种情况下表示函数 return 的数据帧)

下面的两行工作正常

eval(parse(text=paste("output.df<-",mode,".df", sep="")))
return(output.df)

然而,当我试图压缩这两行纯粹是为了更简洁,删除对 output.df 的中间赋值时,它不会输出数据帧

例如

eval(parse(text=paste("return(",mode,".df)", sep="")))

在我得到一个非常大的数据框到 return 之前,继续使用第一种方法对我来说并不是什么大问题,此时我认为可能会影响性能/内存.

只需删除return,这是完全没有必要的,老实说一点意义都没有。

eval(parse(text=paste0(mode,".df")))

更好的是,不要在此处使用 eval——这可能是最糟糕的解决方案。相反,将您的数据放入结构化 table 或列表格式。或者,最坏的情况,使用 get:

get(paste0(mode, '.df'))

但实际上,只需将数据放入命名列表即可。