Re: [R] coding logic and syntax in R

About this list Date view Thread view Subject view Author view Attachment view

From: Prof Brian Ripley (ripley@stats.ox.ac.uk)
Date: Wed 24 Dec 2003 - 19:09:18 EST


Message-id: <Pine.LNX.4.44.0312240753340.18302-100000@gannet.stats>

On Wed, 24 Dec 2003, Pravin wrote:

> I am a beginner in R programming and recently heard about this mailing list.
> Currently, I am trapped into a simple problem for which I just can't find a
> solution. I have a huge dataset (~81,000 observations) that has been

BTW, that is quite a small dataset these days: not even 10 million is `huge'.

> analyzed and the final result is in the form of 0 and 1(one column).
>
> I need to write a code to process this column in a little complicated way.
> These 81,000 observations are actually 9,000 sets (81,000/9).
> So, in each set whenever zero appears, rest all observations become zero.
>
> For example;
>
> If the column has:
>
> 111110111111011111111111111111111....
>
> The output should look like:
>
> 111110000111000000111111111111111...

Let me see if I understand you. This was really

111110111
111011111
111111111
111111...

and you want

111110000
111000000
111111111
111111...

So let's treat it as a matrix (extending to 4 complete sets):

x <- as.numeric(strsplit("111110111111011111111111111111111011", NULL)[[1]])
xx <- matrix(x, ncol=9, byrow=TRUE)

Then a simple loop

for(i in 2:9) xx[,i] <- xx[,i] & xx[,i-1]

give me the second matrix, which I can read out as a vector as

as.vector(t(xx))
[1] 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0

or in what I understand as your format

paste(t(xx), collapse="")
[1] "111110000111000000111111111111111000"

Doing this with 81000 random 0/1's took a fraction of a second.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
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, UK                Fax:  +44 1865 272595

______________________________________________ R-help@stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help


About this list Date view Thread view Subject view Author view Attachment view

This archive was generated by hypermail 2.1.3 : Thu 01 Jan 2004 - 09:21:00 EST