dati campione (emp.data
)Come leggere il file separato da tabulazione in data.table usando fread?
Beth 4.00 0
Dan 3.75 0
Kathy 4.00 10
Mark 5.00 20
Mary 5.50 22
Susie 4.25 18
posso leggere in un data.frame
utilizzando read.table
, quindi convertirlo in data.table
:
library(data.table)
df <- read.table("emp.data", col.names = c("Name", "PayRate", "HoursWorked"))
DT <- as.data.table(df, key = HoursWorked)
calcolare la retribuzione (filtrare zero ore):
DT[HoursWorked > 0, .(Name, Pay = PayRate * HoursWorked),]
Name Pay
1: Kathy 40.0
2: Mark 100.0
3: Mary 121.0
4: Susie 76.5
Che funziona bene; tuttavia, ritengo che ci sia un ulteriore passaggio nella conversione. Poiché c'è fread()
in data.table
, perché non utilizzarlo direttamente?
readDT <- fread("emp.data", header=FALSE, sep="\t")
V1
1: Beth 4.00 0
2: Dan 3.75 0
3: Kathy 4.00 10
4: Mark 5.00 20
5: Mary 5.50 22
6: Susie 4.25 18
str(readDT)
Classes 'data.table' and 'data.frame': 6 obs. of 1 variable:
$ V1: chr "Beth 4.00 0" "Dan 3.75 0" "Kathy 4.00 10" "Mark 5.00 20" ...
- attr(*, ".internal.selfref")=<externalptr>
I dati sono riconosciuti come una colonna; ovviamente questo non funziona
Domanda
Come leggere questi dati utilizzando fread()
correttamente? (Se possibile, impostare i nomi delle colonne pure.)
cercare di non specificare il 'sep' e lasciarlo "auto"(per non' fread' decidere). In altre parole, basta 'fread (" emp.data ", header = FALSE)' –
@DavidArenburg Grazie. Ho ricevuto questo errore: '> readDT <- fread (" emp.data ", header = FALSE) Errore in fread (" emp.data ", header = FALSE): Non posizionato correttamente dopo il test del formato della riga di intestazione. ch = '' ' – Nick
È difficile dirlo, puoi fornire un' dput' del tuo set di dati? Forse anche provare senza specificare 'header' –