【问题标题】:using colClasses in fread在 fread 中使用 colClasses
【发布时间】:2013-09-13 00:51:09
【问题描述】:

我不知道如何使用fread 中的colClasses 选项选择特定列。我尝试以多种方式使用NULL,但没有任何效果。这是一个最小的例子。我只想要第 1 列和第 3 列。

dt <- data.table(a=1:5,b=6:10,c=10:14)
write.csv(dt,"dt.csv",row.names=F)

dt <- fread("dt.csv",colClasses=?)

packageVersion("data.table")
[1] ‘1.8.10’

getRversion()
[1] ‘3.0.1’

导入的数据集应如下所示:

   a  c
1: 1 10
2: 2 11
3: 3 12
4: 4 13
5: 5 14

【问题讨论】:

    标签: r data.table fread


    【解决方案1】:

    更新: 这现在在 v1.8.11 中在 R-Forge 上实现,截至提交 966。来自 NEWS

    freaddropselectNULLcolClasses 中实现。到 按名称或编号删除或选择列。请参阅?fread 中的示例。

    ?fread 中的例子是:

    data = "A,B,C,D\n1,3,5,7\n2,4,6,8\n"
    
    # colClasses    
    fread(data, colClasses=c(B="character",C="character",D="character"))
    fread(data, colClasses=list(character=c("B","C","D")))    # saves typing
    fread(data, colClasses=list(character=2:4))     # same using column numbers
    
    # drop
    fread(data, colClasses=c("B"="NULL","C"="NULL"))   # as read.csv
    fread(data, colClasses=list(NULL=c("B","C")))      # same
    fread(data, drop=c("B","C"))      # same but less typing, easier to read
    fread(data, drop=2:3)             # same using column numbers
    
    # select
    # (in read.csv you need to work out which to drop)
    fread(data, select=c("A","D"))    # less typing, easier to read
    fread(data, select=c(1,4))        # same using column numbers
    

    【讨论】:

    • 没有问题,感谢您的提示。您打算在不久的将来实施它吗?
    • @beginneR 希望这周结束。
    • 仅供参考——1.8.11 在 R-Forge 上被列为 Build Failed——它传播到 CRAN 需要多长时间?
    猜你喜欢
    • 2021-06-15
    • 2020-01-06
    • 2015-04-20
    • 2013-07-08
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2014-11-01
    相关资源
    最近更新 更多