我一直在試圖創建一個for循環,將通過我的數據框,併爲我有每個個人ID作出相同的情節。下面是一些樣本數據:for循環創建多個ggplots從單個數據幀
TJID1 <- c("TJ22", "TJ22", "TJ23", "TJ23", "TJ23", "TJ24", "TJ24")
Day <- c("2005-11-22", "2005-11-23", "2006-12-01", "2006-12-02", "2006-12-03","2005-07-08", "2005-07-08")
Mean.Depth <- c (2, 2, 3, 4, 5, 6, 6)
SE.Depth <- c(1, 1, 2, 2, 1, 2, 2)
sample <- cbind(TJID1, Day, Mean.Depth, SE.Depth)
sample <- as.data.frame(sample)
我有每個人的不同TJ編號,然後爲每個TJ他們有不同的每日深度的手段。每個人的日子都在變化。我已經能夠通過每個TJ TJ22 <- sample [sample$TJID1 == "TJ22", ]
對主數據框進行子集分類。從圖中我的代碼,然後(使用子集化的數據幀):
DailyMeans_TJ22 <- ggplot(TJ22, aes(x=Day, y=Mean.Depth))+
geom_point()+
geom_line()+
geom_errorbar(aes(ymin=Mean.Depth-1.96*SE.Depth, ymax=Mean.Depth+1.96*SE.Depth), width = 0.5, col="red")
我想創建一個for循環,只是通過每個個體週期,使用戶在同樣的情節。這是我到目前爲止:
var_list = combn(names(sample) [3:4], 3, simplify=FALSE)
plot_list = list()
for (i in unique (sample$TJID1)){
TJ <- sample[sample$TJID1== i,]
p = ggplot(TJ, aes_string(x=var_list[[i]][1], y=var_list[[i]][2])) +
geom_point()+
geom_line()
plot_list[[i]] = p
}
但是,這從字面上只是沒有給我什麼。任何幫助表示讚賞!
你必須'打印(p)'。爲什麼不使用'facet_wrap(〜TJID1)'而不是循環? –