[R] Using loop for applying function on matrix
Berend Hasselman
bhh at xs4all.nl
Tue May 21 10:43:45 CEST 2013
On 21-05-2013, at 09:16, Suparna Mitra <suparna.mitra.sm at gmail.com> wrote:
> Hello R Experts,
> I need a bit of help in using loop.
> I have a matrix onto which I need to use several functions.
>
> In a simplified form suppose my matrix is
>> mdat
> [,1] [,2] [,3] [,4] [,5]
> [1,] 1 2 3 4 5
> [2,] 11 12 13 10 10
> [3,] 2 3 4 5 6
> [4,] 10 9 8 9 10
> [5,] 5 6 7 8 4
>
> And I have one vector
>> x
> [1] 14 15 10 11 18
>
> Now suppose in simple form I want to create a matrix in which each col
> value will be divided with consecutive no from vector x. For example
>
> column 1 of new vector will be C1=mdat[,1]*100/x[1]
>
>> C1
> [1] 7.142857 78.571429 14.285714 71.428571 35.714286
>
> Now how can I use the loop to have the complete vector at a time?
> I tried something like this, but in vain.
> for(i in 1:5) {
> Data=(mdat[,i]*100/x[i], add=T)
> }
>
See this discussion: http://r.789695.n4.nabble.com/Divide-matrix-columns-by-different-numbers-td4666013.html
Other possibilities taken from that thread
mdat*100/rep(x,each=nrow(mdat))
100*t(t(mdat)/x)
Berend
More information about the R-help
mailing list