Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R data.table fread: specify column data type

Is it possible to specify the data type of numeric columns in fread? Commands like

prices = markets[, fread(paste(mkt, 'price.csv')), by = mkt]

will fail if price data are integers in one file and floats in another.

So instead of a clean one-liner, I have to explicitly write a for-loop and cast the data type to numeric and concatenate the results.

like image 858
jf328 Avatar asked Jul 26 '26 14:07

jf328


2 Answers

You can use the colClasses = argument.

fread("mytable.csv", colClasses = c("character", "character", "numeric"))

like image 66
Humpelstielzchen Avatar answered Jul 30 '26 10:07

Humpelstielzchen


I would suggest using the syntax

df <- fread("https://query.data.world/s/2uapynn5a5afd5dfsyaljlzhbwxoyz", colClasses=c("age" = "numeric", "job"="factor"))

The explicit specification of the variable name is more reliable.

like image 25
DmitriBolt Avatar answered Jul 30 '26 09:07

DmitriBolt