[Rd] Puzzle or bug with matrix indexing

Berry, Charles ccberry @ending from uc@d@edu
Sat Aug 4 18:53:30 CEST 2018



> On Aug 4, 2018, at 6:55 AM, David Hugh-Jones <davidhughjones using gmail.com> wrote:
> 
> I'm not sure why this is happening:
> 
> tmp <- data.frame(
>  a = letters[1:2],
>  b=c(TRUE, FALSE),
>  stringsAsFactors = FALSE
> )
> idx <- matrix(c(1, 2, 2, 2), 2, byrow = TRUE)
> tmp[idx]
> 
> [1] " TRUE" "FALSE"
> 

>From ?"[.data.frame"

Extract.data.frame {base}
.
.
.
Matrix indexing (x[i] with a logical or a 2-column integer matrix i) using [ is not recommended. For extraction, x is first coerced to a matrix.

[...]

Thus, something like 

	as.matrix(tmp)

happens converting every column to character. Dig deeper by reading

?matrix

and see the paragraph on `as.matrix' under `Details'.

HTH,

Chuck


More information about the R-devel mailing list