Re: [R] Analog to matlab repmat function

2006-05-29 Thread Gabor Grothendieck
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

2006-05-28 Thread Prof Brian Ripley
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

2006-05-28 Thread Gabor Grothendieck
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

2006-05-28 Thread Daniil Ivanov
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