Hello, I'm trying to understand how to analyze microarray data with R and Bioconductor.
I found this quite nice and complete course for debutant (both for R and microarray analysis) : [Link][1]

However, I'm stuck with "Exercise 8 : create a heat map of normalized intensities of the first 50 genes using ggplot()" in the "Tutorial: Comparing two groups of samples"

So briefly, I came to the point where I have RMA normalized expression data in a data matrix, obtained with :

    data = ReadAffy(celfile.path=celpath)
    data.rma = rma(data)
    data.matrix = exprs(data.rma)

Then, here is the part of code in the correction that block for me to create the heatmap :

    #Exercise8: create a heat map of the first 50 genes using ggplot()
    sampleNames = vector()
    featureNames = vector()
    heatlogs = vector()
    for (i in 1:6)
    {
    sampleNames = c(sampleNames,rep(ph@data[i,1],50))
    featureNames = c(featureNames,rownames(data.matrix[100:150,]))
    heatlogs = c(heatlogs,data.matrix[100:150,i])
    }
    heatData = data.frame(norm_logInt=heatlogs,sampleName=sampleNames,featureName=featureNames)
    dataHeat = ggplot(heatData, aes(sampleName,featureName))
    dataHeat + geom_tile(aes(fill=norm_logInt)) + 
    scale_fill_gradient(low="green", high="red")
More precisely, it's the heatData that don't work, returning this error :

    Error in data.frame(norm_logInt = heatlogs, sampleName = sampleNames,  : 
      arguments imply differing number of rows : 306, 300

So I kind of understand what is happening here, I have between sampleNames, featureNames and heatlogs a different number of rows.
However, I can't figure out where or what is the probleme above this

In order for you to see them :

    > featureNames
      [1] "245000_at" "245001_at" "245002_at" "245003_at" "245004_at" "245005_at"
      [7] "245006_at" "245007_at" "245008_at" "245009_at" "245010_at" "245011_at"
     [13] "245012_at" "245013_at" "245014_at" "245015_at" "245016_at" "245017_at"
     [19] "245018_at" "245019_at" "245020_at" "245021_at" "245022_at" "245023_at"
     [25] "245024_at" "245025_at" "245026_at" "245027_at" "245028_at" "245029_at"
     [31] "245030_at" "245031_at" "245032_at" "245033_at" "245034_at" "245035_at"
     [37] "245036_at" "245037_at" "245038_at" "245039_at" "245040_at" "245041_at"
     [43] "245042_at" "245043_at" "245044_at" "245045_at" "245046_at" "245047_at"
     [49] "245048_at" "245049_at" "245050_at" "245000_at" "245001_at" "245002_at"
     [55] "245003_at" "245004_at" "245005_at" "245006_at" "245007_at" "245008_at"
     [61] "245009_at" "245010_at" "245011_at" "245012_at" "245013_at" "245014_at"
     [67] "245015_at" "245016_at" "245017_at" "245018_at" "245019_at" "245020_at"
     [73] "245021_at" "245022_at" "245023_at" "245024_at" "245025_at" "245026_at"
     [79] "245027_at" "245028_at" "245029_at" "245030_at" "245031_at" "245032_at"
     [85] "245033_at" "245034_at" "245035_at" "245036_at" "245037_at" "245038_at"
     [91] "245039_at" "245040_at" "245041_at" "245042_at" "245043_at" "245044_at"
     [97] "245045_at" "245046_at" "245047_at" "245048_at" "245049_at" "245050_at"
    [103] "245000_at" "245001_at" "245002_at" "245003_at" "245004_at" "245005_at"
    [109] "245006_at" "245007_at" "245008_at" "245009_at" "245010_at" "245011_at"
    [115] "245012_at" "245013_at" "245014_at" "245015_at" "245016_at" "245017_at"
    [121] "245018_at" "245019_at" "245020_at" "245021_at" "245022_at" "245023_at"
    [127] "245024_at" "245025_at" "245026_at" "245027_at" "245028_at" "245029_at"
    [133] "245030_at" "245031_at" "245032_at" "245033_at" "245034_at" "245035_at"
    [139] "245036_at" "245037_at" "245038_at" "245039_at" "245040_at" "245041_at"
    [145] "245042_at" "245043_at" "245044_at" "245045_at" "245046_at" "245047_at"
    [151] "245048_at" "245049_at" "245050_at" "245000_at" "245001_at" "245002_at"
    [157] "245003_at" "245004_at" "245005_at" "245006_at" "245007_at" "245008_at"
    [163] "245009_at" "245010_at" "245011_at" "245012_at" "245013_at" "245014_at"
    [169] "245015_at" "245016_at" "245017_at" "245018_at" "245019_at" "245020_at"
    [175] "245021_at" "245022_at" "245023_at" "245024_at" "245025_at" "245026_at"
    [181] "245027_at" "245028_at" "245029_at" "245030_at" "245031_at" "245032_at"
    [187] "245033_at" "245034_at" "245035_at" "245036_at" "245037_at" "245038_at"
    [193] "245039_at" "245040_at" "245041_at" "245042_at" "245043_at" "245044_at"
    [199] "245045_at" "245046_at" "245047_at" "245048_at" "245049_at" "245050_at"
    [205] "245000_at" "245001_at" "245002_at" "245003_at" "245004_at" "245005_at"
    [211] "245006_at" "245007_at" "245008_at" "245009_at" "245010_at" "245011_at"
    [217] "245012_at" "245013_at" "245014_at" "245015_at" "245016_at" "245017_at"
    [223] "245018_at" "245019_at" "245020_at" "245021_at" "245022_at" "245023_at"
    [229] "245024_at" "245025_at" "245026_at" "245027_at" "245028_at" "245029_at"
    [235] "245030_at" "245031_at" "245032_at" "245033_at" "245034_at" "245035_at"
    [241] "245036_at" "245037_at" "245038_at" "245039_at" "245040_at" "245041_at"
    [247] "245042_at" "245043_at" "245044_at" "245045_at" "245046_at" "245047_at"
    [253] "245048_at" "245049_at" "245050_at" "245000_at" "245001_at" "245002_at"
    [259] "245003_at" "245004_at" "245005_at" "245006_at" "245007_at" "245008_at"
    [265] "245009_at" "245010_at" "245011_at" "245012_at" "245013_at" "245014_at"
    [271] "245015_at" "245016_at" "245017_at" "245018_at" "245019_at" "245020_at"
    [277] "245021_at" "245022_at" "245023_at" "245024_at" "245025_at" "245026_at"
    [283] "245027_at" "245028_at" "245029_at" "245030_at" "245031_at" "245032_at"
    [289] "245033_at" "245034_at" "245035_at" "245036_at" "245037_at" "245038_at"
    [295] "245039_at" "245040_at" "245041_at" "245042_at" "245043_at" "245044_at"
    [301] "245045_at" "245046_at" "245047_at" "245048_at" "245049_at" "245050_at"
    > sampleNames
      [1] "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"  
     [11] "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"  
     [21] "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"  
     [31] "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"  
     [41] "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"   "wt1"  
     [51] "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"  
     [61] "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"  
     [71] "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"  
     [81] "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"  
     [91] "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"   "wt2"  
    [101] "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"  
    [111] "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"  
    [121] "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"  
    [131] "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"  
    [141] "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"   "wt3"  
    [151] "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1"
    [161] "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1"
    [171] "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1"
    [181] "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1"
    [191] "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1" "apum1"
    [201] "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2"
    [211] "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2"
    [221] "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2"
    [231] "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2"
    [241] "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2" "apum2"
    [251] "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3"
    [261] "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3"
    [271] "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3"
    [281] "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3"
    [291] "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3" "apum3"
    > head(heatlogs)
    245000_at 245001_at 245002_at 245003_at 245004_at 245005_at 
     6.644076 13.221866  9.406594 10.387840 11.354398  3.398136 

Thank you for your help !

  [1]: https://www.bits.vib.be/training/111-bits/training/previous-trainings/177-microarray-bioconductor

 Please check out these changes:
    
    ....  
    length(100:150)
    [1] 51
    length(100:150)*6
    [1] 306
    ....
 
    sampleNames = c(sampleNames,rep(ph@data[i,1],50)) # gives 50 elements
    featureNames = c(featureNames,rownames(data.matrix[101:150,])) # yields 50 elements now:  
    heatlogs = c(heatlogs,data.matrix[101:150,i]) # same here