[R] matrix subscripts in replacement (in a data frame)
ripley@stats.ox.ac.uk
ripley at stats.ox.ac.uk
Sat Feb 1 18:57:05 CET 2003
Simple: it's not been implemented in R. Would you like to contribute an
implementation?
Remember, R is a volunteer project and what gets implemented depends on
the volunteer's needs.
On Sat, 1 Feb 2003, Bliese, Paul D MAJ WRAIR-Wash DC wrote:
> I'm reluctant to draw the S-PLUS and R comparison (these are different
> programs after all), but could someone tell me why the following matrix
> substitution works in S-PLUS, but not R. I'm curious because matrix
> substitution is a really slick way to "cleaning up" columns of data in data
> frames. For example, in the following I change values of 1 to values of 10,
> but only for columns 1 and 3.
>
> # S-PLUS example below
>
> > TEMP<-data.frame(VAR1=c(1,2,3,4,5),VAR2=c(5,4,3,2,1),VAR3=c(1,1,1,1,NA))
> > TEMP
> VAR1 VAR2 VAR3
> 1 1 5 1
> 2 2 4 1
> 3 3 3 1
> 4 4 2 1
> 5 5 1 NA
> > TEMP[,c(1,3)][TEMP[,c(1,3)]==1&!is.na(TEMP[,c(1,3)])]<-10
> > TEMP
> VAR1 VAR2 VAR3
> 1 10 5 10
> 2 2 4 10
> 3 3 3 10
> 4 4 2 10
> 5 5 1 NA
>
> # R Example Below (version 1.6.1 Windows)
>
> > TEMP<-data.frame(VAR1=c(1,2,3,4,5),VAR2=c(5,4,3,2,1),VAR3=c(1,1,1,1,NA))
> > TEMP
> VAR1 VAR2 VAR3
> 1 1 5 1
> 2 2 4 1
> 3 3 3 1
> 4 4 2 1
> 5 5 1 NA
> > TEMP[,c(1,3)][TEMP[,c(1,3)]==1&!is.na(TEMP[,c(1,3)])]<-10
> Error in "[<-.data.frame"(*tmp*, TEMP[, c(1, 3)] == 1 & !is.na(TEMP[, :
> matrix subscripts not allowed in replacement
--
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