我想通過創建並傳遞字符串作爲參數到aggregate()函數來在R中「即時」調用聚合函數。功能。除了子集參數外,我幾乎可以爲所有參數做到這一點。如何將字符串作爲參數在集合函數中作爲參數「subset」參數
例如:我想運行下面的一段代碼: GG1 < - 骨料(公制〜grouping_var1 + grouping_var2,數據=在data.set,FUN = 「意思是」,子集= exclude.filter == 0)
我可以創建字符串變量,我可以傳遞給聚合函數:只要
current.metric <- "metric"
rhs <- c("grouping_var1","grouping_var2")
func1 <- "mean"
filter <- "exclude.filter == 0"
gg1 <- aggregate(as.formula(paste(current.metric, paste(rhs, collapse="+"), sep="~")), data=data.set, FUN= "mean", subset=exclude.filter==0)
上面一段代碼可以作爲子集= exclude.filter == 0被設置爲參數。我無法弄清楚如何使用像subset = filter這樣的東西。我已經嘗試過表達式(過濾器),替代(過濾器),as.formula(過濾器)作爲參數在子集參數,但我不解析表達式在我認爲正確的環境。
另一種方法是構造整個字符串並將其傳遞給eval()。但是,我想知道它是否可以在聚合函數本身內完成。請有人指出我正確的方向來解決這個問題嗎?
才能添加標籤說明您正在使用的編碼語言的平臺。更明確。 –
我很抱歉,我是這個論壇的新手。我之前添加了「R」標籤,但尚未添加「R-Windows」。我在Windows 8上使用R(在RStudio中,如果有幫助的話) –
爲什麼你想要這樣做?在'parent.frame()'中進行評估的'model.frame()'有一個調用,這就是使用'subset'參數的地方。我認爲這很難破解。 – Thomas