correlation between transposon and gene I have two matrix identical in N° of rows and columns. In the first matrix rows indicate transposable elements and columns  indicate samples. the matrix show the degree of expression of each element in samples: 

M1 &lt;-


            elements          ova       testes       retina   optic_lobe       suckers 
1   LINES/3           1.473559e+03   962.953589   673.903449   558.879946   947.631992          
2   SINES             1.836210e+02   355.808323   577.807528   341.048786   99.902702          
3  DNA TRANSP         9.181051e+00   178.661200  4387.148414    53.907711   353.413028           


In Second matrix rows indicate genes and columns indicate samples. the matrix show the degree of expression of each gene in samples: 

 M2 &lt;-
            elements          ova       testes       retina   optic_lobe  suckers 
1   OCBIM_22028242mg 1.473559e+03   962.953589   673.903449   558.879946   947.631992          
2   OCBIM_22008718mg 1.836210e+02   355.808323   577.807528   341.048786   99.902702          
3   OCBIM_22009482mg 9.181051e+00   178.661200  4387.148414    53.907711   353.413028           


I have to make an element-gene correlation. I have to check, for example, if the element A expressed much in the tissue X has the corresponding gene A expressed very, little, or nothing in the tissue X

fOR example I'm expecting this result:

M1,2 &lt;-
                elements          ova       testes       retina   optic_lobe  suckers 
    1   TE/ gene1                  0.3          1          0.5         -1         0.3          
    2   TE/gene2                   0.1        0.6            0         -1         0.9      
    3   TE/gene3                     1          1          0.8        -0.2       -0.3
Ok I think I roughly get what you want to get. Below I simulate something that's like your data because you provided two identical matrices.

#3 TE, 10 tissue, random values
# number of tissue
M1 = matrix(rnorm(30),3,10)
rownames(M1) = paste("TE",1:3,sep="_")
colnames(M1) = paste("Tissue",letters[1:10],sep="_")
## make gene matrix, , random values
M2 = matrix(rnorm(30),3,10)
rownames(M2) = paste("Gene",1:3,sep="_")
colnames(M2) = paste("Tissue",letters[1:10],sep="_")
## here we make TE1 highly correlated to Gene1
M2[1,] = M1[1,] + rnorm(10,0,0.3)
## here we make TE2 highly anti-correlated to Gene2
M2[2,] = -1*M1[2,] + rnorm(10,0,0.3)
#here we calculate for each TE, its correlation with each gene.
#credit to @haci
COR = apply(t(M1),t(M2))
# you can look at the correlation
COR


What you need is the last three rows. Remember, you can only calculate correlation between the gene and the TE, and you do this across all tissue. For example, if gene1 and TE1 has a high correlation, this tells you TE1 expression can predict gene1 expression in most tissue.

It's meaningless to calculate correlation between one data point and another. You need more than 1 value. For example, if you do cor(10,5), it doesn't make sense. 

Hope this is what you are trying to do..