2016-11-16 150 views
1

喜我有一個DF,看起來像:情節環[R]

A  B  C 
101 201 301 
102 202 302 

和我想創建每一列的2×5圖像繪圖(每片含對應於JPG文件10倍的值)而不重複代碼100次。我的問題是如何設置一個循環來爲我繪製這些圖。

這是我用的第一列中的硬編碼:

require(jpeg) 
image_frame = par(mfrow=c(5,2)) 
par(mar = c(1,1,1,1)) 

plot(1:2, type='n' ,xaxt='n', yaxt='n') 
mtext("101", side=2, line = 0) 
img101 = readJPEG('images/101.jpg') 
rasterImage(img201, 1, 2, 2, 1) 

我會承擔的功能和一些變量,以調用標籤和文件名保存值「101」,而不是硬代碼將是最有效的。

plotALL = function{ 
plot(1:2, type='n' ,xaxt='n', yaxt='n') 
mtext("colName") 
mtext("i", side=2, line = 0) 
img101 = readJPEG('images/'i'.jpg') 
rasterImage(img'i', 1, 2, 2, 1) 


for(i in dim(df)) 
plotALL(i) 

回答

1

由於沒有可重複的代碼,這裏是一個粗略的猜測......

par(mfrow=c(5,2)) 
for(column in df) { 
    plot(1:2, type='n' ,xaxt='n', yaxt='n') # i guess this depends in the jpg 
    for(i in column) { 
    jpg <- readJPEG(sprintf('images/%s.jpg', i)) 
    rasterImage(jpg,1,2,2,1) 
    } 
    # save image somehow... 
}