【问题标题】:Access column after reading .csv file with fread使用 fread 读取 .csv 文件后访问列
【发布时间】:2016-06-02 20:45:08
【问题描述】:

当我像这样使用 read.csv 读取 .csv 文件时

df1 <- read.csv("a.csv")

我像这样访问单个列

df1[,1]

我得到了预期的列向量。


但相比之下,如果我用 fread(来自库 data.table)读取 .csv

df2 <- fread("a.csv")

并访问单个列

df2[,1]

它只是返回

1

有人可以解释一下,当我用 fread 读取 csv 时,为什么我不能通过索引访问列向量?

【问题讨论】:

  • 因为你需要阅读tuorial。换句话说,fread 不是一些基本的 R 函数,而是来自 data.table 包(你没有提到)并创建一个 data.table 具有自己语法的对象。
  • 好的,谢谢你的回答。
  • 换句话说,使用df2[, 2, with = FALSE]df2[[1]] 或传递(不带引号的)列名而不是索引。

标签: r csv data.table fread read.csv


【解决方案1】:

根据data.table中的?fread,会发现一个参数data.table

data.table TRUE 返回一个 data.table。 FALSE 返回一个 data.frame。

默认情况下,data.tableTRUE,因此会创建一个 data.table。

如果您更喜欢df2[,1] 样式,请使用:

df2 <- fread("a.csv",data.table=FALSE)

【讨论】:

    猜你喜欢
    • 2017-08-16
    • 2014-04-16
    • 1970-01-01
    • 2012-08-06
    • 2019-11-13
    • 2014-03-14
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多