【问题标题】:reading file using fread with row and column names使用带有行名和列名的 fread 读取文件
【发布时间】:2014-09-30 19:02:11
【问题描述】:

使用 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?

【问题讨论】:

  • 您是否尝试在使用read.csv时添加row.names = 1?如果没有,你应该看看?read.csv
  • @EricFail - 对不起,我是 R/data.table 的新手。它与 read.csv 有什么关系?
  • 看看this SO tread
  • 我想使用 fread 因为我的数据文件很大,我不想使用 read.csv 。
  • 这似乎已在 v1.9.3.. 中修复。

标签: r csv data.table


【解决方案1】:

您应该提交错误报告。

这是一个解决方法:

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 不支持行名。

【讨论】:

  • @d.putto,想知道在这种情况下fread() 是否仍然更快。
  • @EricFail 当然,它适用于相当大的文件。您似乎对fread(和data.table)了解不多。
  • 我没有。直到 50 分钟前我才听说fread。我是来学习的。谢谢。
猜你喜欢
  • 2021-02-16
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 2017-04-30
  • 1970-01-01
  • 2016-06-02
  • 2021-02-19
相关资源
最近更新 更多