Re: [R] Analog to matlab repmat function
Actually google does understand R. For example, 1. google for: R and you will get the R home page.as first hit 2. google for R repmat and you will find Robin Hankin's lexicon that translates between R and octave/maxima which includes a repmat function as 7th hit. On 5/29/06, Daniil Ivanov <[EMAIL PROTECTED]> wrote: > Thanks a lot to all of you! > > Now I see, that use of R (and S) is very different from use of Matlab. > There is no one-to-one correspondence. > I'm shy to ask so stupid questions, but name of language R > makes it hard to find relevant links trough google. > Thanks for pointing to "S Poetry", I would never find it alone, > since I was looking for R-related info. > > Thanks, Daniil. > > On 5/29/06, Patrick Burns <[EMAIL PROTECTED]> wrote: > > S Poetry may be of use to you. > > > > > > Patrick Burns > > [EMAIL PROTECTED] > > +44 (0)20 8525 0696 > > http://www.burns-stat.com > > (home of S Poetry and "A Guide for the Unwilling S User") > > > > Daniil Ivanov wrote: > > > > >Hello, > > > > > > I'm trying to switch from Matlab to R-project, and having some > > > difficulties. > > > I make a use of multidimensional matrices. For example, I need to extract > > > mean from one of the dimensions: > > > > > > % we have matrix data of size: 130 x 11 x 350 x 2 > > > data = data - repmat(mean(data,3),[130 1 1 1]); > > > > > > In R project I managed to do that in a very pervarsive way: > > > > > > # mean(data,3) in R > > > base <- apply(data,c(2,3,4),mean) > > > # repmat(...,[130 1 1 1]) > > > base <- rep(base,130) > > > dim(base) <- c(11,2,350,130) > > > base <- aperm(base,c(4,1,2,3)) > > > # data = data - repmat > > > data <- data - base; > > > > > > Could you please show me a more elegant way of doing the same in R :) > > > > > >Thanks, Daniil. > > > > > >__ > > >[email protected] mailing list > > >https://stat.ethz.ch/mailman/listinfo/r-help > > >PLEASE do read the posting guide! > > >http://www.R-project.org/posting-guide.html > > > > > > > > > > > > > > > > __ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > __ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Re: [R] Analog to matlab repmat function
On Mon, 29 May 2006, Daniil Ivanov wrote: > Oops, mistake, should be > > data = data - repmat(mean(data,1),[130 1 1 1]); > > Sorry. I am afraid I do not know what that actually does in matlab, except that it looks like subtracting (not extracting) a mean. Functions which I would expect you to be using are sweep(), rowMeans or colMeans(). Something like arr <- sweep(arr, 2:4, colMeans(arr, 1)) perhaps? (Using 'data', the name of a system R object, is a good way to sidetrack your audience and so best avoided.) > On 5/29/06, Daniil Ivanov <[EMAIL PROTECTED]> wrote: >> Hello, >> >> I'm trying to switch from Matlab to R-project, and having some difficulties. >> I make a use of multidimensional matrices. For example, I need to extract >> mean from one of the dimensions: >> >> % we have matrix data of size: 130 x 11 x 350 x 2 >> data = data - repmat(mean(data,3),[130 1 1 1]); >> >> In R project I managed to do that in a very pervarsive way: >> >> # mean(data,3) in R >> base <- apply(data,c(2,3,4),mean) Probably rowMeans(data, 1) is meant. >> # repmat(...,[130 1 1 1]) >> base <- rep(base,130) >> dim(base) <- c(11,2,350,130) >> base <- aperm(base,c(4,1,2,3)) >> # data = data - repmat >> data <- data - base; >> >> Could you please show me a more elegant way of doing the same in R :) >> >> Thanks, Daniil. >> > > __ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UKFax: +44 1865 272595 __ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Re: [R] Analog to matlab repmat function
Check out ?sweep On 5/28/06, Daniil Ivanov <[EMAIL PROTECTED]> wrote: > Oops, mistake, should be > > data = data - repmat(mean(data,1),[130 1 1 1]); > > Sorry. > > On 5/29/06, Daniil Ivanov <[EMAIL PROTECTED]> wrote: > > Hello, > > > > I'm trying to switch from Matlab to R-project, and having some > > difficulties. > > I make a use of multidimensional matrices. For example, I need to extract > > mean from one of the dimensions: > > > > % we have matrix data of size: 130 x 11 x 350 x 2 > > data = data - repmat(mean(data,3),[130 1 1 1]); > > > > In R project I managed to do that in a very pervarsive way: > > > > # mean(data,3) in R > > base <- apply(data,c(2,3,4),mean) > > # repmat(...,[130 1 1 1]) > > base <- rep(base,130) > > dim(base) <- c(11,2,350,130) > > base <- aperm(base,c(4,1,2,3)) > > # data = data - repmat > > data <- data - base; > > > > Could you please show me a more elegant way of doing the same in R :) > > > > Thanks, Daniil. > > > > __ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > __ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Re: [R] Analog to matlab repmat function
Oops, mistake, should be data = data - repmat(mean(data,1),[130 1 1 1]); Sorry. On 5/29/06, Daniil Ivanov <[EMAIL PROTECTED]> wrote: > Hello, > > I'm trying to switch from Matlab to R-project, and having some difficulties. > I make a use of multidimensional matrices. For example, I need to extract > mean from one of the dimensions: > > % we have matrix data of size: 130 x 11 x 350 x 2 > data = data - repmat(mean(data,3),[130 1 1 1]); > > In R project I managed to do that in a very pervarsive way: > > # mean(data,3) in R > base <- apply(data,c(2,3,4),mean) > # repmat(...,[130 1 1 1]) > base <- rep(base,130) > dim(base) <- c(11,2,350,130) > base <- aperm(base,c(4,1,2,3)) > # data = data - repmat > data <- data - base; > > Could you please show me a more elegant way of doing the same in R :) > > Thanks, Daniil. > __ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
