2016-11-16 149 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... 
}