How to avoid: read.table truncates numeric values beginning with 0
I want to import a table (.txt
file) in R with read.table()
. One column in my table is an ID with nine numerals - some ids begin with a 0, other with 1 or 2.
R truncates the first 0 (012345678 becomes 12345678) which leads to problems when using this ID to merge another table.
Can someone give me a hint how to solve the problem?
Solution 1:
As said in Ben's answer, colClasses
is the easier way to do it. Here is an example:
read.table(text = 'col1 col2
0012 0001245',
head=T,
colClasses=c('character','numeric'))
col1 col2
1 0012 1245 ## col1 keep 00 but not col2
Solution 2:
A reproducible example would be nice, but: use the colClasses
argument to read.table()
to specify that you want this column to be read as a character
variable, not numeric
. Or make them back into character
variables after reading them in, using sprintf
to pad the numbers with leading zeros. (The former is probably easier.)