Many thanks, Ista: I only looked in "].default" so the answer is: Alternative 4: dumb Bert. Rap knuckles with ruler.
Actually, indexing by a logical matrix doesn't make much sense to me in either case, as it does not have the effect of selecting individual elements, which is what numeric matrix indices do. But that's a matter of usage, neither bug nor feature. If I had gotten something like the error message: "Matrix indices not allowed for replacement in data frames," I would not have been surprised. But as you said, the behavior **IS** documented. Best, Bert On Tue, May 1, 2012 at 10:49 AM, Ista Zahn <istaz...@gmail.com> wrote: > Hi Bert, > > The failure itself is the documented behavior: ?'[.data.frame' says > > "Matrix indexing ('x[i]' with a logical or a 2-column integer > matrix 'i') using '[' is not recommended, and barely supported. > For extraction, 'x' is first coerced to a matrix. For > replacement, a logical matrix (only) can be used to select the > elements to be replaced in the same way as for a matrix." > > The error message may be a bit hinky, as obviously data.frames can be > indexed by things other than logical matricies. Or is there another > reason this strikes you as odd? > > Best, > Ista > > On Tue, May 1, 2012 at 1:33 PM, Bert Gunter <gunter.ber...@gene.com> wrote: >> AdvisoRs: >> >> Is the following a bug, feature, hinky error message, or dumb Bert? >> >>> mtest <- matrix(1:12,nr=4) >>> dftest <- data.frame(mtest) >>> ix <- cbind(1:2,2:3) >>> mtest[ix] <- NA >>> mtest >> [,1] [,2] [,3] >> [1,] 1 NA 9 >> [2,] 2 6 NA >> [3,] 3 7 11 >> [4,] 4 8 12 >> >> ## But ... >>> dftest[ix] <- NA >> Error in `[<-.data.frame`(`*tmp*`, ix, value = NA) : >> only logical matrix subscripts are allowed in replacement >> >> Obviously, I was expecting matrix indexing for replacement to work >> similarly in both cases; however, I can see why it would be >> problematic for data frames (mixed types), but was a bit nonplussed by >> the error message, which seems hinky to me. >> >> Cheers, >> Bert >> >> -- >> >> Bert Gunter >> Genentech Nonclinical Biostatistics >> >> Internal Contact Info: >> Phone: 467-7374 >> Website: >> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm >> >> ______________________________________________ >> 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. -- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm ______________________________________________ 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.