誰能告訴我,爲什麼當它被用來幾個數據幀中的一個之間進行選擇,以輸出從功能[R評估和演示問題與函數的返回
例如返回使用eval(parse(text=xxxx))
失敗我有一個函數內生成三個數據框;
aaa.df,bbb.df,ccc.df
和一個 '模式' 例如參數AAA/BBB/CCC(其表示在這種情況下,從函數返回的數據幀)
以下兩班輪工作正常
eval(parse(text=paste("output.df<-",mode,".df", sep="")))
return(output.df)
然而,當我嘗試純粹冷凝這兩條線用於幾乎沒有增加簡潔性,將中間分配移除到output.df,它不會輸出數據幀
eg
eval(parse(text=paste("return(",mode,".df)", sep="")))
這不會是一個大問題,我繼續與第一種方法,直到我結束了一個非常大的數據幀返回,在這一點上,我認爲可能會有一些性能/內存命中。
很難說,因爲你沒有提供足夠的,所以我們可以重新創建你的問題。但是,你是否試圖在整個表情中加上括號? '(eval(parse(text = paste(「return(」,mode,「。df)」,sep =「」))))' – Jake
沒有嘗試tbh。我會認爲(儘管現在你認爲我不那麼自信),用這樣的括號包裝整個表達式對代碼執行完全沒有影響。但是也許有一點我在這裏錯過的R語法...... – Pascoe
當然有更好的方法來選擇從函數返回哪個data.frame。在R代碼中''eval(parse())'通常是一個壞主意。即使是一個簡單的'get()'在這裏可能會更好。 – MrFlick