Data frame vs matrix quirk: Hinky error message?
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.berton at 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 at 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.