On Thu, 8 Jan 2009, Rune Schjellerup Philosof wrote:

Browse[1]> j <- c(1,2,NA)
Browse[1]> j[j==1][-1]
[1] NA
Browse[1]> j[j==1][-2]
[1] 1
Browse[1]> j[j==1][-2] <- 2
Error during wrapup: NAs are not allowed in subscripted assignments

As far as I can see, I have no NA in the lhs (not after the second
subscript anyway).

But, it is not 'after the second subscript'. R evaluates from left to right and does not re-evaluate subscripts in the light of subexpressions.

Think of this as (E&OE, since interpreters are far better at this than humans)

ind <- j==1     # c(TRUE, FALSE, NA)
tmp1 <- j[ind]  # c(1, NA)
tmp1[-2] <- 2   # tmp1 = c(2, 2)
j[ind] <- tmp1  # j[(c(TRUE, FALSE, NA)] <- c(2,2)

and that last is the problematic subassignment. You asked to assign the second '2' to an unknown element of 'j': if allowed that would make all elements NA but then the first value would be unused, so the interpreter would think you confused.

Besides, I have a single value on the rhs, so it should be allowed to
have NAs in the lhs, according to help(Extract).

But you do not on one of your subassignments.

What am I missing?
I can see no ambiguite as to what the result of those commands should be
(j == c(2,2,NA)).

I suggest you refrain from using such complicated statements. Just occasionally such constructs are needed for efficiency (potentially fewer copies) but very rarely (and only by R masters).

--
Med venlig hilsen
Rune Schjellerup Philosof
Videnskabelig Assistent, Statistik, SDU

Telefon:  6550 3607
Email:    rphilo...@health.sdu.dk
Adresse: J.B. Winsløwsvej 9, 5000 Odense C

--
Brian D. Ripley,                  rip...@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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to