使用带行和列名称的fread读取文件

时间:2014-08-07 13:43:13

标签: r csv data.table

使用fread,如何读取包含行名和列名的CSV文件。 我试过了,但它没有正确读取行名和列名。

csv文件看起来像(其中C1,C2,C3是列名,r1,r2,r3是行名)

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

我使用功能

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

给出

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

如何使用fread正确读取CSV?

1 个答案:

答案 0 :(得分:4)

您应该提交错误报告。

这是一个解决方法:

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

正如您所知,data.table不支持rownames。