如何在data.table中使用fread()指示row.names = 1?

时间:2014-06-26 07:49:49

标签: r data.table

我想将 .csv 文件中的第一列视为 rownames 的序列。通常我以前做过以下事情:

read.csv("example_file.csv", row.names=1)

但我希望使用fread() R包中的data.table函数执行此操作,因为它运行得非常快。

4 个答案:

答案 0 :(得分:1)

为什么不在列中保存 rownames

df <- data.frame(x=rnorm(1000))
df$row_name = row.names(df)   
fwrite(df,file="example_file.csv")

然后从保存的CSV加载csv文件。

df <- fwrite(file="example_file.csv")

答案 1 :(得分:0)

从我做过的小搜索data.tables never uses row names. Since data.tables inherit from data.frames, it still has the row names attribute. But it never uses them开始。

但是,您可以使用this answer (similar post),然后将rowname列设置为实际的rownames。虽然,它可能效率不高。

答案 2 :(得分:0)

只需一个函数,即可转换为数据框

a <- fread(file="example_file.csv")  %>% as.data.frame()
row.names(a) <- a$V1

答案 3 :(得分:0)

X <- as.matrix(fread("bigmatrix.csv"),rownames=1)