7

Using fread, how to read CSV file which contains row and column names. I tried following but it is not reading the row and column names properly.

The csv file looks like (where C1,C2,C3 are column names and r1, r2, r3 are row names)

input = ",C1,C2,C3
r1,A,B,C
r2,1,3,5
3,2,4,6"

I use function

require(data.table)
fread(input,header = TRUE)

which give

   r1 A B C
1: r2 1 3 5
2:  3 2 4 6

How can I properly read CSV using fread?

talat
  • 62,625
  • 18
  • 110
  • 141
d.putto
  • 5,867
  • 8
  • 35
  • 43

1 Answers1

5

You should submit a bug report.

Here is a work-around:

colnames <- strsplit(readLines(textConnection(input), n=1), ",")[[1]]
colnames[1] <- "rownames"
setnames(DT <- fread(input, skip=1, header=FALSE), colnames)
DT
#   rownames C1 C2 C3
#1:       r1  A  B  C
#2:       r2  1  3  5
#3:        3  2  4  6

As you should know, data.table doesn't support rownames.

Roland
  • 117,893
  • 9
  • 163
  • 255