From ripley at stats.ox.ac.uk  Wed Oct  7 22:41:13 2015
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Wed, 7 Oct 2015 21:41:13 +0100
Subject: [Rd] read.table reads "i" as NA_complex_
In-Reply-To: <CAF8bMcbD=RST5NA1S5FhRj+3hV6UAAayn8pQs-pfmJkzjyvF-Q@mail.gmail.com>
References: <CAF8bMcbD=RST5NA1S5FhRj+3hV6UAAayn8pQs-pfmJkzjyvF-Q@mail.gmail.com>
Message-ID: <56158369.4070104@stats.ox.ac.uk>

On 07/10/2015 21:22, William Dunlap wrote:
> I just noticed that read.table() and type.convert() interpret the string "i"
> as a missing value of type complex.
>     > str(read.table(text=c("i\ni\ni\ni\n")))
>     'data.frame':   4 obs. of  1 variable:
>      $ V1: cplx  NA NA NA ...
>     > str(type.convert("i"))
>      cplx NA
>
> If there are other strings in the column it makes the column character so
> most people will not notice
>     > str(read.table(text=c("i\nii\niii\niv\n")))
>     'data.frame':   4 obs. of  1 variable:
>      $ V1: Factor w/ 4 levels "i","ii","iii",..: 1 2 3 4
>
> Is this intended?  It surprised me.

It was intended (that input is ambiguous), but it is being changed .... 
from the NEWS file for R-devel:

     ? type.convert("i") now returns a factor instead of a complex value
       with zero real part and missing imaginary part.

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK



[Rd] read.table reads "i" as NA_complex_
Prof Brian Ripley