好吧,我需要一個在列表中循環使用ggplot2的手(用lapply)來獲取列表中每個元素的單獨圖表。 我是R的新手,所以請原諒這個菜鳥。使用ggplot2和lapply在列表中的元素的獨立圖
說我有一個數據幀爲這樣:
df <- cbind.data.frame(Time = c(1,2,3,4,1,2,3,4),
Person = c("A","A","A","A","B","B","B","B"),
Quantity = c(1,4,6,8,1,6,2,10))
df <- data.table(df)
> df
Time Person Quantity
1: 1 A 1
2: 2 A 4
3: 3 A 6
4: 4 A 8
5: 1 B 1
6: 2 B 6
7: 3 B 2
8: 4 B 10
欲分別產生用於人A和人物B的圖表。 目前,我有我的功能設置是這樣的:
Persons = c("A","B")
PersonList = as.list(Persons)
MyFunction <- function(x){
SubsetPersons = Persons[!(Persons %in% x)]
df <- df[!(df$Person %in% SubsetPersons)]
g <- ggplot(data=df, aes(x=Time, y=Quantity))
g <- g + geom_line()
print(g)
}
Results <- lapply(Persons, MyFunction)
但我不知道如何保存與對應列表元素名稱不同的圖表?
注:我知道這個函數可能看起來是一個奇怪的方法來解決這個問題,但是對於我所面臨的更大更復雜的問題,它是必需的。 我只是想弄清楚如何爲列表中的圖表保存不同的名稱!
在此先感謝!
當您說「保存圖表」時,是指將圖形輸出保存到文件中,還是保留變量(即上面的'g')? – Ricky
最終我想將它們保存到文件中。但我猜,即使他們只是被稱爲不同的名稱,如gA和gB,那麼我可以稍後再調用它們並保存它們... – LyssBucks
但是,我認爲將它們直接以pdf或png格式保存到目錄可能會有所幫助! – LyssBucks