Ok, I see the difference between 1 and 1:2, I'll just leave it as one of those 
"only in R" things.

But it seems then, that as.numeric() should guarantee a FALSE outcome, yet it 
does not. 

To build on what Rolf pointed out, I would really love for someone to explain 
this one:

> str(1)
 num 1

> str(1:2)
 int [1:2] 1 2

> str(as.numeric(1:2))
 num [1:2] 1 2

> str(as(1:2,"numeric"))
 int [1:2] 1 2

Which doubly makes no sense.  1) Either the class is "numeric" or it isn't; I 
did not call as.integer() here.  2) method of recasting should not affect final 
class.

Thanks,
Ariel


-----Original Message-----
From: Rolf Turner [mailto:r.tur...@auckland.ac.nz] 
Sent: Saturday, April 09, 2016 5:27 AM
To: Jeff Newmiller
Cc: Paulson, Ariel; 'r-help@r-project.org'
Subject: Re: [FORGED] Re: [R] identical() versus sapply()

On 09/04/16 16:24, Jeff Newmiller wrote:
> I highly recommend making friends with the str function. Try
>
> str( 1 )
> str( 1:2 )

Interesting.  But to me counter-intuitive.  Since R makes no distinction 
between scalars and vectors of length 1 (or more accurately I think, since in R 
there is *no such thing as a scalar*, only a vector of length
1) I don't see why "1" should be treated in a manner that is categorically 
different from the way in which "1:2" is treated.

Can you, or someone else with deep insight into R and its rationale, explain 
the basis for this difference in treatment?

> for the clue you need, and then
>
> sapply( 1:2, identical, 1L )

cheers,

Rolf

--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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