The answer is that in 3.1.0 read.table()
returns a character vector instead of number vector if representing the table as a double matrix may lose accuracy.
From here:
type.convert() (and hence by default read.table()) returns a character vector or factor when representing a numeric input as a double would lose accuracy. Similarly for complex inputs.
If a file contains numeric data with unrepresentable numbers of decimal places that are intended to be read as numeric, specify colClasses in read.table() to be "numeric".