From ccberry @ending from uc@d@edu  Sat Aug  4 18:53:30 2018
From: ccberry @ending from uc@d@edu (Berry, Charles)
Date: Sat, 4 Aug 2018 16:53:30 +0000
Subject: [Rd] Puzzle or bug with matrix indexing
In-Reply-To: <CAARY7kgosh2XgT+DDg9Y7CQwERdwTrn7AO1MAvV-tS0e=_O0SA@mail.gmail.com>
References: <CAARY7kgosh2XgT+DDg9Y7CQwERdwTrn7AO1MAvV-tS0e=_O0SA@mail.gmail.com>
Message-ID: <C1C93F6E-FDD1-4687-BC45-4671C90B548F@ucsd.edu>



> On Aug 4, 2018, at 6:55 AM, David Hugh-Jones <davidhughjones at 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


[Rd] Puzzle or bug with matrix indexing
Berry, Charles