[Rd] read.table reads "i" as NA_complex_

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Oct 7 22:41:13 CEST 2015


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



More information about the R-devel mailing list