我正在繪製大量類似的圖,所以我想我編寫一個函數來簡化任務。我想通過它data.frame
和要繪製的列的名稱。這是我曾嘗試:如何將列名傳遞給處理數據的函數。框架
plot_individual_subjects <- function(var, data)
{
require(ggplot2)
ggplot(data, aes(x=Time, y=var, group=Subject, colour=SubjectID)) +
geom_line() + geom_point() +
geom_text(aes(label=Subject), hjust=0, vjust=0)
}
現在,如果var
是行不通的字符串。如果將ggplot
命令的aes
部分更改爲y=data[,var]
,它也不起作用,它會抱怨無法對閉包進行子集化。
那麼解決這個問題和類似問題的正確方法/最佳實踐是什麼?如何將列名輕鬆安全地傳遞給想要對data.frames進行處理的函數?
改爲使用'aes_string'。 – joran 2012-03-02 18:08:33
@joran你不妨發佈一個答案。 – Justin 2012-03-02 18:12:11