2015-03-25 59 views
2

一些簡單的指導,同時學習R:重命名對象在for循環中的R

創建for環描繪一組直方圖:

for (i in 1:10) { 
    p <- ggplot(data, aes(x=data[,i], fill=Group)) + 
    geom_histogram(binwidth=200, alpha=.5, position="dodge") 
    print(p) 
    p[i] <- p 
} 

我想不同的名稱分配給p調用這些情節稍後分開。我本來以爲加入p[i] <- p就足夠了。 我在做什麼錯誤?謝謝大家!

回答

3

您的第一項任務是從ggplot reset p每次和您的p[i] <-p不能工作,因爲它是在任務的兩側同一個對象。你想用:

pList <- list() 
for (i in 1:10) { 
    p <- ggplot(data, aes(x=data[,i], fill=Group)) + 
    geom_histogram(binwidth=200, alpha=.5, position="dodge") 
    print(p) 
    pList[[i]] <- p 
} 

然後你就可以訪問不同的地塊作爲p[[1]]

+0

感謝cmbarbu!完美工作。 – 2015-03-25 03:17:15

0

另一種選擇是使用assign

for (i in 1:10) { 
       assign(paste0("plot", i), ggplot(data, aes(x=data[,i], fill=Group)) + 
                geom_histogram(binwidth=200, alpha=.5, position="dodge")) 
       } 

這將創建一個每個小區爲不同的對象( plot1plot2plot3 ...)在您的全球環境中