[R] assign a constant to a different column for each row
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Oct 27 18:15:26 CET 2003
m[1:5 + nrow(m)*c(2,3,1,2,1)] <- 0 if m is a matrix. Remember you can
index a matrix as a vector.
If m is a data frame (you didn't say what it is) I would loop over
columns (not rows) explicitly, since the code is going to do that
implicitly.
On Mon, 27 Oct 2003 uaca at alumni.uv.es wrote:
>
> Hi all
>
> I want to assign a constant to a different column for each row
>
> eg:
>
> m[1,2] <- 0;
> m[2,3] <- 0;
> m[3,1] <- 0;
> m[4,2] <- 0;
> m[5,1] <- 0;
> ...
>
> etc...
>
> i've tried apply/tapply with no luck
>
> and also the following
>
> coefs <- rtt.abs[,5:8];
> coefs.i <- coefs[] == 1;
> coefs[coefs.i] <- 0;
>
> wich results in
>
> "matrix subscripts not allowed in replacement"
>
> error message, for wich I have not found any workaround
>
> a trivial for() loop is not fast enough
>
> any help would be greatly appreciated, (maybe a gun too) I'm disperated :-\
--
Brian D. Ripley, ripley at 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
More information about the R-help
mailing list