[Rd] as.character(list(NA))

Hervé Pagès hpages at fredhutch.org
Mon Jan 22 22:51:50 CET 2018


On 01/22/2018 01:02 PM, William Dunlap wrote:
> I tend to avoid using as.<type> functions on lists, since they act oddly 
> in several ways.
> E.g, if the list "L" consists entirely of scalar elements then 
> as.numeric(L) acts like
> as.numeric(unlist(L)) but if any element is not a scalar there is an 
> error.

FWIW personally I see this as a nice feature and use as.numeric(L)
instead of as.numeric(unlist(L) in places where I'd rather fail than
getting something that is not parallel to the input.

H.

>  as.character()
> does not seem to make a distinction between the all-scalar and 
> not-all-scalar cases
> but does various things with NA's of various types.
> 
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__tibco.com&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=TBOnlxYy_MjXJqxLqI8WB2WWHNMtc8qw5gxsqUoyoH4&s=XiTysBsoZb4M91NAS4DK6nK982wAf7JGpRSDrXioQ3A&e=>
> 
> On Mon, Jan 22, 2018 at 11:14 AM, Robert McGehee 
> <rmcgehee at walleyetrading.net <mailto:rmcgehee at walleyetrading.net>> wrote:
> 
>     Also perhaps a surprise that the behavior depends on the mode of the NA.
> 
>      > is.na
>     <https://urldefense.proofpoint.com/v2/url?u=http-3A__is.na&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=TBOnlxYy_MjXJqxLqI8WB2WWHNMtc8qw5gxsqUoyoH4&s=z8HTNapemGDhhH0ICUN2hgJrtUcxsgM96mcUwD8QzQk&e=>(as.character(list(NA_real_)))
>     [1] FALSE
>      > is.na
>     <https://urldefense.proofpoint.com/v2/url?u=http-3A__is.na&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=TBOnlxYy_MjXJqxLqI8WB2WWHNMtc8qw5gxsqUoyoH4&s=z8HTNapemGDhhH0ICUN2hgJrtUcxsgM96mcUwD8QzQk&e=>(as.character(list(NA_character_)))
>     [1] TRUE
> 
>     Does this mean deparse() preserves NA-ness for NA_character_ but not
>     NA_real_?
> 
> 
>     -----Original Message-----
>     From: R-devel [mailto:r-devel-bounces at r-project.org
>     <mailto:r-devel-bounces at r-project.org>] On Behalf Of Hervé Pagès
>     Sent: Monday, January 22, 2018 2:01 PM
>     To: William Dunlap <wdunlap at tibco.com <mailto:wdunlap at tibco.com>>;
>     Patrick Perry <pperry at stern.nyu.edu <mailto:pperry at stern.nyu.edu>>
>     Cc: r-devel at r-project.org <mailto:r-devel at r-project.org>
>     Subject: Re: [Rd] as.character(list(NA))
> 
>     On 01/20/2018 08:24 AM, William Dunlap via R-devel wrote:
>      > I believe that for a list as.character() applies deparse()  to
>     each element
>      > of the list.  deparse() does not preserve NA-ness, as it is
>     intended to
>      > make text that the parser can read.
>      >
>      >> str(as.character(list(Na=NA, LglVec=c(TRUE,NA),
>      > Function=function(x){x+1})))
>      >   chr [1:3] "NA" "c(TRUE, NA)" "function (x) \n{\n    x + 1\n}"
>      >
> 
>     This really comes as a surprise though since coercion to all the
>     other atomic types (except raw) preserve the NAs.
> 
>     And also as.character(unlist(list(NA))) preserves them.
> 
>     H.
> 
>      >
>      > Bill Dunlap
>      > TIBCO Software
>      > wdunlap tibco.com
>     <https://urldefense.proofpoint.com/v2/url?u=http-3A__tibco.com&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=TBOnlxYy_MjXJqxLqI8WB2WWHNMtc8qw5gxsqUoyoH4&s=XiTysBsoZb4M91NAS4DK6nK982wAf7JGpRSDrXioQ3A&e=>
>      >
>      > On Sat, Jan 20, 2018 at 7:43 AM, Patrick Perry
>     <pperry at stern.nyu.edu <mailto:pperry at stern.nyu.edu>> wrote:
>      >
>      >> As of R Under development (unstable) (2018-01-19 r74138):
>      >>
>      >>> as.character(list(NA))
>      >> [1] "NA"
>      >>
>      >>> is.na
>     <https://urldefense.proofpoint.com/v2/url?u=http-3A__is.na&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=TBOnlxYy_MjXJqxLqI8WB2WWHNMtc8qw5gxsqUoyoH4&s=z8HTNapemGDhhH0ICUN2hgJrtUcxsgM96mcUwD8QzQk&e=>(as.character(list(NA)))
>      >> [1] FALSE
>      >>
>      >> ______________________________________________
>      >> R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list
>      >>
>     https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=VbamM9XRQOlfBakrmlrmQZ7DLgXZ-hhhFeLD-fKpoCo&s=Luhqwpr2bTltIA9Cy7kA4gwcQh16bla0S6OVe3Z09Xo&e=
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=VbamM9XRQOlfBakrmlrmQZ7DLgXZ-hhhFeLD-fKpoCo&s=Luhqwpr2bTltIA9Cy7kA4gwcQh16bla0S6OVe3Z09Xo&e=>
>      >>
>      >
>      >       [[alternative HTML version deleted]]
>      >
>      > ______________________________________________
>      > R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list
>      >
>     https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=VbamM9XRQOlfBakrmlrmQZ7DLgXZ-hhhFeLD-fKpoCo&s=Luhqwpr2bTltIA9Cy7kA4gwcQh16bla0S6OVe3Z09Xo&e=
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=VbamM9XRQOlfBakrmlrmQZ7DLgXZ-hhhFeLD-fKpoCo&s=Luhqwpr2bTltIA9Cy7kA4gwcQh16bla0S6OVe3Z09Xo&e=>
>      >
> 
>     --
>     Hervé Pagès
> 
>     Program in Computational Biology
>     Division of Public Health Sciences
>     Fred Hutchinson Cancer Research Center
>     1100 Fairview Ave. N, M1-B514
>     P.O. Box 19024
>     Seattle, WA 98109-1024
> 
>     E-mail: hpages at fredhutch.org <mailto:hpages at fredhutch.org>
>     Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>     Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
> 
>     ______________________________________________
>     R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list
>     https://stat.ethz.ch/mailman/listinfo/r-devel
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_r-2Ddevel&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=TBOnlxYy_MjXJqxLqI8WB2WWHNMtc8qw5gxsqUoyoH4&s=Tl76BG1PB4_MNRObhik4eJ3UG8DsFBcgCq_k4f7RBSE&e=>
> 
> 

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the R-devel mailing list