utilisation de colClasses dans 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 façons, 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
26
demandé sur beginneR 2013-09-09 17:51:35

1 réponses

UPDATE: {[10] } Ceci est maintenant implémenté dans v1.8. 11 sur R-Forge à partir du commit 966. De nouvelles :

fread's drop, select et NULL dans colClasses sont mises en œuvre. De supprimez ou sélectionnez les colonnes par nom ou par numéro. Voir les 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
38
répondu Matt Dowle 2013-09-15 22:41:53