web-dev-qa-db-fra.com

en utilisant colClasses en fread

Je ne sais pas comment choisir des colonnes spécifiques en utilisant l'option colClasses dans fread. J'ai essayé d'utiliser NULL de plusieurs manières mais rien n'a fonctionné. Voici un exemple minimal. Je veux juste les colonnes 1 et 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’

L'ensemble de données importé devrait ressembler à ceci:

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

MISE À JOUR: Ceci est maintenant implémenté dans la v1.8.11 sur R-Forge à partir du commit 966. De ACTUALITÉS :

fread's drop, select et NULL dans colClasses sont implémentés. Pour supprimer ou sélectionner des colonnes par nom ou par numéro. Voir des exemples dans ?fread.

Les exemples dans ?fread sont :

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
44
Matt Dowle