在 fread 中使用 colClasses [英] using colClasses in fread

查看:18
本文介绍了在 fread 中使用 colClasses的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I don't know how to choose specific columns using the colClasses option in fread. I tried to use NULL in several ways but nothing worked. Here's a minimal example. I just want columns 1 and 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’

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

The imported dataset should look like this:

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

推荐答案

更新: 现在在 R-Forge 从提交 966 开始.来自 新闻 :

UPDATE: This is now implemented in v1.8.11 on R-Forge as of commit 966. From NEWS :

freaddropselectcolClasses中的NULL都实现了.到按名称或编号删除或选择列.请参阅 ?fread 中的示例.

fread's drop, select and NULL in colClasses are implemented. To drop or select columns by name or by number. See examples in ?fread.

?fread 中的例子是:

data = "A,B,C,D
1,3,5,7
2,4,6,8
"

# 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

这篇关于在 fread 中使用 colClasses的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆